的NodeJS:如何base64编码字符串返回解码为二进制? [重复](NodeJS: How

2019-07-18 21:10发布

这个问题已经在这里有一个答案:

  • 如何做到在node.js的Base64编码? 3个回答

我是执行密码散列与盐,所以产生的盐为二进制,散列的口令,base64编码密码和盐然后存储它们变成数据库。

现在,当我检查密码,我应该盐回解码成二进制数据,用它来散列提供的密码,Base64编码的结果,检查结果符合一个数据库中。

问题是,我无法找到盐解码成二进制数据的方法。 我使用他们的Buffer.toString方法,但似乎并没有被反转功能编码。

Answer 1:

作为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
}


文章来源: NodeJS: How to decode base64 encoded string back to binary? [duplicate]