PHP - Bcrypt哈希比较总是失败

Cai*_*ins 2 php passwords hash 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';

?>
Run Code Online (Sandbox Code Playgroud)

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

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

zer*_*kms 8

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

password_verify('testpassword', $hash1)
Run Code Online (Sandbox Code Playgroud)

参考文献:

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