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

2023-11-23

我正在使用 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(使用前将#替换为@)

NodeJS:如何将base64编码的字符串解码回二进制? [复制] 的相关文章

随机推荐

  • 创建名称助手,将名字和姓氏分开

    我正在寻找一些有关如何获取属性并通过方法处理它以返回不同内容的帮助 但我以前从未这样做过 而且不知道从哪里开始 我想尝试将 name string 属性从 George Washington 或 John Quincy Adams 更改为仅
  • ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final 问题 - 编译器希望引用 7.0.0.0,但未找到

    我有同样的问题 我在我的中添加了以下依赖项project json file dependencies EntityFramework 7 0 0 beta4 EntityFramework Core 7 0 0 rc1 final Ent
  • Android 获取缓存大小的方法

    我在我的测试应用程序中使用 fedor 的延迟加载列表实现 只需单击一个按钮即可清除缓存 如何获取列表视图中加载图像的缓存大小并以编程方式清除缓存 以下是保存缓存图像的代码 public ImageLoader Context contex
  • 理解记忆障碍

    我正在尝试在对 java 无锁程序员有用的级别上理解内存屏障 我认为 这个级别介于学习易失性和从 x86 手册中学习存储 加载缓冲区的工作之间 我花了一些时间阅读了很多博客 食谱 并得出了下面的摘要 有知识渊博的人可以看一下摘要 看看我是否
  • 如何将相对布局设置为默认布局

    我通常在大部分活动中使用相对布局 我想让 Android studio 在创建新活动时默认创建相对布局 而不是约束布局 有没有办法做到这一点 右键单击布局文件夹 gt 新建 gt 编辑文件模板 打开一个对话框 转到 其他 选项卡 更改内容
  • C++11 从频繁变化的范围生成随机数

    问 如何从先验未知范围生成 许多 均匀分布的整数 就性能而言 生成数百万个数字 首选方式是什么 上下文 在我的应用程序中 我必须在许多地方生成许多伪随机数 我对生成器使用单例模式来保持应用程序运行的可重复性 在我的例子中 分布总是均匀的 但
  • 使用 jquery 动态创建元素

    我正在尝试使用 jquery 创建元素 当我单击链接时 我想创建一个元素 p 给它一些文本 然后将其放入我的一个 div 中 另外 我想检查点击了哪个链接 这样我就可以将创建的 p 放在右侧的 div 中 关于我做错的地方有什么解决方案吗
  • 为什么新样式类和旧样式类在这种情况下有不同的行为?

    我发现了一些有趣的东西 这是一段代码 class A object def init self print A init def del self print A del class B object a A 如果我运行这段代码 我将得到
  • Android 图像滤镜库

    是否有适用于 Android 的图像库 如http www jhlabs com ip filters index html 或者有人移植过同样的东西吗 提前致谢 我知道这是一个老话题 但在没有 AWT 库的情况下 我已经开始移植一些图像滤
  • d3-cloud 的打字

    我想用d3 cloud在我的 Angular2 应用程序中生成词云 但是 我无法找到要安装的正确类型 我试过this但是当我尝试将其导入到我的组件中时 它不起作用 我不断收到错误 在类型中找不到属性布局 有人可以帮我解决这个问题吗 我想出了
  • 简单标题未显示在 UINavigationController 中

    我已经查看了所有类似 相关的问题 但没有一个是a 完全是我的问题 或者2 解决方案不起作用 在我的 appDelegate m 中 我有 didFinishLaunchingWithOptions JCGRootNavigationCont
  • 以编程方式更改 SQL Server 设置

    我请求你仔细阅读我的问题 您可能知道 当您安装带有 SQL Server Express 版本的 VS2005 2008 时 SQL Server 默认以 Windows 身份验证模式运行 您可以使用 SQL Server Manageme
  • 如何解决 RapidXML 字符串所有权问题?

    RapidXML是一个快速 轻量级的 C XML DOM 解析器 但它有一些怪癖 在我看来 其中最糟糕的是 3 2 字符串的所有权 RapidXml 生成的节点和属性不 拥有它们的名称和值字符串 他们 只需持有指向它们的指针即可 这 意味着
  • 如何使用抽屉导航锁定特定页面的抽屉 [react-navigation][react-native]

    这是我的抽屉导航 const DashboardStack StackNavigator Dashboard screen Dashboard headerMode screen const DetailsformStack StackNa
  • 按字段的前两个字符对 SQL 进行排序

    我正在尝试按销售人员姓名缩写对一些数据进行排序 销售代表字段的长度为 3 个字符 并且是名字 姓氏和帐户类型 所以 鲍勃史密斯将是 BS 我只需要按前两个字符排序 如何提取某个代表的所有数据 其中字段的前两个字符等于 BS 在某些数据库中你
  • 在Python中检测64位操作系统(windows)

    有谁知道我将如何检测 Windows 在 Python 下的位版本 我需要知道这是一种使用正确的程序文件文件夹的方法 非常感谢 我认为 Mark Ribau 已经发布了该问题的最佳解决方案 Python 2 7 及更高版本的问题的最佳答案是
  • 使用plot.ly Dash 等待结果时显示加载符号

    In my Dash基于应用程序 按钮触发长时间运行的计算 在结果尚未出现时显示加载动画并使按钮处于非活动状态以便在计算完成之前不会再次单击该按钮不是很好吗 我在用Bulma用于 UI 设计并想使用button is loading为此目的
  • 为什么 typescript-eslint 对 enumMember 强制采用驼峰命名法?

    TypeScript 文档中的所有枚举示例写入枚举成员作为帕斯卡命名法 例如 enum Direction Up 1 Down Left Right But typescript eslint 命名约定强制使用驼峰命名法 并拒绝帕斯卡命名法
  • 我可以使用谷歌地图 API v3 来获取位置的时区吗?

    是否可以使用谷歌地图API来获取时区 我已经在使用它的 api 进行地理编码和地图显示 我还想添加时区 但我在文档中找不到任何内容 有任何想法吗 链接 您可以使用时区API 例如 使用 jQuery ajax url https maps
  • NodeJS:如何将base64编码的字符串解码回二进制? [复制]

    这个问题在这里已经有答案了 我正在使用 salt 实现密码哈希 因此我将 salt 生成为二进制 对密码进行哈希处理 对密码和 salt 进行 Base64 编码 然后将它们存储到数据库中 现在 当我检查密码时 我应该将盐解码回二进制数据