相当于这个php片段的javascript

问题描述 投票:0回答:1

鉴于这个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有问题。感谢任何建议。

javascript php sha512
1个回答
1
投票

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

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 */
© www.soinside.com 2019 - 2024. All rights reserved.