这段 php 代码片段的 javascript 等价物

标签 javascript php sha512

给定这个 php:

 $hash = hash('sha512', $salt . $password, TRUE);
 /* point A */
 $hash = hash('sha512', $hash . $password, TRUE);
 /* point B */

我写了这个 JavaScript:

let hash = crypto.createHash('sha512');
hash.update(salt + password);
let buffer = hash.digest();
 /* point A */
 hash = crypto.createHash('sha512');
 hash.update(buffer.toString() + password);
 buffer = hash.digest();
 /* point B */

对于所有盐和密码字符串,A 缓冲区在 PHP 和 Javascript 中具有相同的值。但在 B 点,它们是不同的,所以我第二次调用 hash.update 时出现了问题。任何建议表示赞赏。

最佳答案

好吧,我想我已经明白了。

let hash = crypto.createHash('sha512');
hash.update(salt + password);
let buffer = hash.digest();
/* point A */
hash = crypto.createHash('sha512');
hash.update(Buffer.concat([buffer, Buffer.from(password)]));
buffer = hash.digest();
/* point B */

关于这段 php 代码片段的 javascript 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61663229/

相关文章:

javascript - JS 逻辑与/或

javascript - 如何对通过 ajax 添加到页面的元素执行 jQuery 方法?

php - 使用我的 PHP 服务将 AngularJS 连接到 mysql?

php - 是否可以在 PhpUnit 中的测试用例之外创建模拟?

VBScript 错误 5 尝试使用 'System.Security.Cryptography.SHA512Managed' 计算 sha512

javascript - 进入下一个按钮链

javascript - 为单个重复发生的事件保存单独的 DHTMLX 调度程序事件记录

PHP 5.6 : headers_sent intermittently returns true, 空文件名和第 0 行

php - 与盐渍 SHA512 相比,盐渍 SHA1 有多不安全

php - 重新加载部分页面时 session 会丢失