javascript эквивалент этого php фрагмента - PullRequest
0 голосов
/ 07 мая 2020

Учитывая это 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 они разные, поэтому что-то не так с моим вторым вызовом ha sh .update. Любые предложения приветствуются.

1 Ответ

1 голос
/ 07 мая 2020

Хорошо, думаю, я понял.

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 */
...