我正在使用 salt 实现密码哈希,因此我将 salt 生成为二进制,对密码进行哈希处理,对密码和 salt 进行 Base64 编码,然后将它们存储到数据库中。
现在,当我检查密码时,我应该将盐解码回二进制数据,用它来散列提供的密码,对结果进行 Base64 编码,并检查结果是否与数据库中的结果匹配。
问题是,我找不到将盐解码回二进制数据的方法。我使用 Buffer.toString 方法对它们进行编码,但似乎没有反向功能。
从 Node.js v6.0.0 开始 using 构造函数方法已被弃用应使用以下方法从 Base64 编码字符串构造新缓冲区:
var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da
适用于 Node.js v5.11.1 及更低版本
构建一个新的Buffer
and pass '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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)