验证在 php 中生成的 nodejs 中的密码哈希
2022-08-30 15:50:03
我的php代码生成一个哈希值,我用它来存储在数据库中。以下是 PHP 代码:password_hash
$hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
我想根据nodejs中的此哈希值验证/检查密码。
我看到了很多节点模块(bcrypt,phpass,node-bcrypt),但它们都给了我假的。下面是在php中生成的示例哈希,我试图在nodejs中验证它。
var hash = '$2y$08$9TTThrthZhTOcoHELRjuN.3mJd2iKYIeNlV/CYJUWWRnDfRRw6fD2';
var bcrypt = require('bcrypt');
bcrypt.compare("secret", hash, function(err, res) {
console.log(res);
});
(这里的秘密是真实密码)
我目前的解决方法是通过节点调用php脚本进行验证(对于任何需要解决方法的人)
var exec = require('child_process').exec;
var cmd = 'php verify.php password encryped_pasword';
exec(cmd, function (error, stdout, stderr) {
// output is in stdout
console.log(stdout);
//If stdout has 1 it satisfies else false
});
这是一个黑客,不是这个问题的好答案。有没有办法在nodejs中验证密码而不使用这样的解决方法?