NodeJS:如何解码base64编码的string回二进制?

我正在用salt实现密码哈希,所以我生成salt为二进制,哈希密码,base64编码密码和盐,然后将它们存储到数据库中。

现在当我检查密码的时候,我应该把salt解码成二进制数据,用它来散列提供的密码,base64对结果进行编码,并检查结果是否与数据库中的匹配。

问题是,我找不到一种方法将盐解码成二进制数据。 我使用Buffer.toString方法对它们进行了编码,但似乎没有反转function。

从Node.js v6.0.0开始,使用构造函数的方法已经被废弃了,下面的方法应该被用来从base64编码的string构造一个新的缓冲区:

var b64string = /* whatever */; var buf = Buffer.from(b64string, 'base64'); // Ta-da 

对于Node.js v5.11.1及更低版本

构build一个新的Buffer并通过'base64'作为第二个参数:

 var b64string = /* whatever */; var buf = new Buffer(b64string, 'base64'); // Ta-da 

如果你想要干净,你可以检查是否存在:

 if (typeof Buffer.from === "function") { // Node 5.10+ buf = Buffer.from(b64string, 'base64'); // Ta-da } else { // older Node versions buf = new Buffer(b64string, 'base64'); // Ta-da }