当前位置: 首页 > 知识库问答 >
问题:

NodeJS:如何将base64编码的字符串解码回二进制?[副本]

孟子墨
2023-03-14

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

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

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

共有1个答案

耿联
2023-03-14

从Node.js v6.0.0开始,使用构造函数方法已被弃用,应改为使用以下方法从base64编码字符串构造新缓冲区:

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

适用于Node.js v5.11.1及以下版本

构造一个新的Buffer并传递'bas64'作为第二个参数:

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, now deprecated
    buf = new Buffer(b64string, 'base64'); // Ta-da
}

 类似资料:
  • 问题内容: 我当时用salt实现密码哈希,所以我以二进制形式生成了salt,对密码进行了哈希处理,对base64进行了编码,然后将salt存储到数据库中。 现在,当我检查密码时,应该将盐解码回二进制数据,使用它来哈希提供的密码,对结果进行base64编码,并检查结果是否与数据库中的结果匹配。 问题是,我找不到将盐解码回二进制数据的方法。我使用Buffer.toString方法对它们进行了编码,但似

  • 我正在使用协议缓冲区和smack制作程序。 smack(xmpp)只能传输字符串类型的数据。并且协议缓冲器可以产生字节阵列数据。所以,我这样做 使用协议缓冲区制作byte[]数据。 使用base64将byte[]数据编码为字符串 使用smack传输 将接收到的字符串(使用base64编码)解码为字符串 将解码字符串更改为byte[] 使用协议缓冲区从byte[]解析数据。 那么没有< code>I

  • 问题内容: 我需要在GWT中将短字符串编码为base 64,并在服务器上解码base 64字符串。有人为此有实用程序类或库吗? 问题答案: 您可以在除IE≤9之外的所有浏览器上的客户端上使用本机JavaScript,在服务器上可以使用官方类之一。 Java / GWT: 编码为。

  • 我想将一个字符串编码成并通过套接字传输它,然后解码回来。 下面是我的代码,结果是“77+9x6s=” 有什么想法如何实现这一点吗?

  • 我一直在尝试在我的应用程序中实现GMAIL API,该应用程序是使用Swift5和Xcode构建的。我已经成功地检索到来自用户的电子邮件,但我无法从编码字符串中获得实际的文本。每当我尝试将这个base64编码的数据转换为普通字符串时,它都返回NIL。 这是绳子 stackoverflow的一些答案建议向string添加填充,但这也不起作用。

  • 本文向大家介绍如何使用nodejs对base64进行编解码?相关面试题,主要包含被问及如何使用nodejs对base64进行编解码?时的应答技巧和注意事项,需要的朋友参考一下 轮子, https://www.npmjs.com/package/js-base64