NodeJS: How to decode base64 encoded string back to binary?
本问题已经有最佳答案,请猛点这里访问。
我用salt实现密码散列,所以我生成了二进制的salt,散列密码,base64编码密码,salt然后将它们存储到数据库中。
现在,当我检查密码时,我应该将salt解码回二进制数据,使用它散列提供的密码,base64对结果进行编码,并检查结果是否与数据库中的结果匹配。
问题是,我找不到将salt解码回二进制数据的方法。我使用buffer.toString方法对它们进行编码,但似乎没有反向函数。
自node.js v6.0.0起,使用constructor方法的方法已被弃用,而应使用以下方法从base64编码字符串构造新的缓冲区:
1 2 | var b64string = /* whatever */; var buf = Buffer.from(b64string, 'base64'); // Ta-da |
对于node.js v5.11.1及以下版本
构造一个新的
1 2 | var b64string = /* whatever */; var buf = new Buffer(b64string, 'base64'); // Ta-da |
如果您想保持清洁,可以检查
1 2 3 4 5 6 7 | 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 } |