使用加密.节点6中的pbkdf2Sync返回的哈希值与节点4中的不同
using crypto.pbkdf2Sync in node 6 return different hash then node4
我们正在尝试将我们当前的项目nodeJS版本(4.2.4)升级到最新版本(6.9.1),我们遇到了这样的问题,我们有一些用户密码的认证方法,它做了这样的事情:
return this.password === crypto.pbkdf2Sync(password, this.salt, 10000, 64).toString('base64');
。Password是在节点4.2.4和密码为用户输入,
升级到节点6.9.1后,它停止工作并返回false,而在节点4.2.4中它返回true
我们已经尝试添加任何摘要选项(因为现在它是必需的),但没有找到匹配
的选项。也许我们应该改变更多的东西?有人能帮忙吗?
- 注意,在Node 5中,它可以正常工作,无需更改代码
您需要将代码更改为:
crypto.pbkdf2Sync(password, new Buffer(this.salt, 'binary'), 10000, 64).toString('base64');
从节点6的默认盐不是二进制
您还需要添加摘要,例如:
crypto.pbkdf2Sync(password, new Buffer(this.salt, 'binary'), 10000, 64, 'DSA-SHA1').toString('base64')
查看API:https://nodejs.org/api/crypto.html crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest
相关文章:
- 在Javascript中实现对哈希值的暴力攻击
- 用户单击带有哈希值的链接以访问该页面,如果禁用Javascript会发生什么情况
- 要发送到控制器的 HREF 链接中的哈希值
- 使用 JavaScript 计算 Blob 的哈希值
- JavaScript 文件哈希值与文件的一部分一起生成
- JavaScript 隔离哈希值
- JavaScript 获取以前的哈希值
- 设置使用 window.open() 打开的空白页的哈希值
- Chrome 不返回哈希值
- Javascript 使用哈希值重新加载页面
- 为什么从其他网络返回会保留最后一个哈希值,同时显示第一个哈希值的内容
- 来自 Javascript 和 PHP 的不同哈希值
- 使用Javascript从url中获取空哈希值
- 如何使用JS重定向到具有哈希值的引用URL
- 单击一页滚动菜单时更改URL哈希值
- 是否可以在Mustache中基于哈希值切换模板部分
- 哈希值和后退/下一步按钮
- javascript哈希值验证
- 使用加密.节点6中的pbkdf2Sync返回的哈希值与节点4中的不同
- D3对其他需求文件中的节点哈希值变化没有反应