我想让Node.JS Crypto PBKDF2匹配来自PHP Crypto PBKDF2的相同值。出于某种原因,它是不一样的。PHP和Node.JS - 加密PBKDF2
在JavaScript
const crypto = require('crypto');
crypto.pbkdf2('secret', 'salt', 100000, 20, 'sha512', (err, key) => {
console.log(key.toString());
});
输出:7E������]�9��J]�i
在PHP
$password = "secret";
$iterations = 100000;
$salt = "salt";
$hash = hash_pbkdf2("sha512", $password, $salt, $iterations, 20);
echo $hash;
输出:3745e482c6e0ade35da1
为什么JS输出不匹配PHP?
谢谢,这似乎工作!是否有可能在JavaScript中使用password_hash()做些事情? –
不客气。你想用password_hash()做什么? –
当通过password_hash()生成散列时,JS应该验证在PHP中创建的哈希密码。 –