这个问题已经在这里有一个答案:
- 如何做到在node.js的Base64编码? 3个回答
我是执行密码散列与盐,所以产生的盐为二进制,散列的口令,base64编码密码和盐然后存储它们变成数据库。
现在,当我检查密码,我应该盐回解码成二进制数据,用它来散列提供的密码,Base64编码的结果,检查结果符合一个数据库中。
问题是,我无法找到盐解码成二进制数据的方法。 我使用他们的Buffer.toString方法,但似乎并没有被反转功能编码。
这个问题已经在这里有一个答案:
我是执行密码散列与盐,所以产生的盐为二进制,散列的口令,base64编码密码和盐然后存储它们变成数据库。
现在,当我检查密码,我应该盐回解码成二进制数据,用它来散列提供的密码,Base64编码的结果,检查结果符合一个数据库中。
问题是,我无法找到盐解码成二进制数据的方法。 我使用他们的Buffer.toString方法,但似乎并没有被反转功能编码。
作为Node.js的V6.0.0的使用构造方法已被弃用和下面的方法应该代替被用于构建从base64编码字符串的新缓冲液:
var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da
对于Node.js的v5.11.1及以下
构造一个新的Buffer
,并通过'base64'
作为第二个参数:
var b64string = /* whatever */;
var buf = new Buffer(b64string, 'base64'); // Ta-da
如果你想成为干净的,你可以检查是否from
存在:
if (typeof Buffer.from === "function") {
// Node 5.10+
buf = Buffer.from(b64string, 'base64'); // Ta-da
} else {
// older Node versions, now deprecated
buf = new Buffer(b64string, 'base64'); // Ta-da
}