PHP 코드는 데이터베이스에 저장하는 password_hash
을 사용하여 해시를 생성합니다. 다음은 PHP 코드입니다 :PHP에서 생성 된 nodejs의 비밀번호 해시 확인
$hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
나는 nodejs에서이 해시에 대해 암호를 확인하고 싶습니다.
나는 많은 노드 모듈 (bcrypt, phpass, node-bcrypt)을 보았지만, 모두 나에게 거짓을 주었다. 다음은 PHP에서 생성 된 샘플 해시이며 nodej에서 확인하려고하는 샘플 해시입니다.
는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에서 비밀번호를 확인하는 방법이 있습니까?
당신은 내가 o0rebelious0o https://www.npmjs.org/package/bcrypt-nodejs – o0rebelious0o
@을 살펴본 적이 그것을 사용하여 비교하려고했는데, false도 아니고 에러도없는 null을 준다. – Sudesh
$ 비용은 getRounds()와 일치해야한다. 이것은 h이다. ow bcrypt가 작동합니다. – erenon