我想讓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中創建的哈希密碼。 –