首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NodeJS:如何将base64编码的字符串解码回二进制?

NodeJS:如何将base64编码的字符串解码回二进制?
EN

Stack Overflow用户
提问于 2013-01-29 07:13:16
回答 1查看 333K关注 0票数 322

我使用salt实现密码散列,所以我生成二进制salt,对密码进行散列,base64对密码和salt进行编码,然后将它们存储到数据库中。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-29 07:17:22

从Node.js v6.0.0开始,使用the constructor method has been deprecated的和以下方法应改为用于从base64编码字符串构造新缓冲区:

代码语言:javascript
复制
var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da

适用于Node.js v5.11.1及更低版本的

构建新的Bufferpass 'base64' as the second argument:

代码语言:javascript
复制
var b64string = /* whatever */;
var buf = new Buffer(b64string, 'base64'); // Ta-da

如果您想保持干净,可以检查from是否存在:

代码语言:javascript
复制
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
}
票数 696
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14573001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档