password_hash
私のphpコードは、データベースに保存するハッシュを生成します。以下はPHPコードです。
$hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
nodejsでこのハッシュに対してパスワードを検証/チェックしたいと思います。
多くのノード モジュール (bcrypt、phpass、node-bcrypt) を見ましたが、それらはすべて false です。以下は、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 でパスワードを確認する方法はありますか?