PHP - Bcrypt哈希比较总是失败

时间:2014-02-24 02:32:19

标签: php hash passwords bcrypt

<?php

require 'password.php';
$hash1 = password_hash('testpassword',PASSWORD_BCRYPT,array('cost' => 11));
$hash2 = password_hash('testpassword',PASSWORD_BCRYPT,array('cost' => 11));

if(password_verify($hash1,$hash2)) echo 'Pass';
else echo 'Fail';

?>

我正在尝试使用带有PHP 5.4.16的password_compat库提供的bcrypt,但是这个脚本总是输出“Fail”,即使它正在比较两个相同密码的哈希值,为什么?

编辑 - 为了澄清,我意识到哈希值并不相同,否则我只是比较它们而不是使用函数。

1 个答案:

答案 0 :(得分:7)

您需要将密码和哈希值传递给password_verify()

password_verify('testpassword', $hash1)

参考文献:

PS:password_hash预期产生不同的结果,因为它包含随机盐