<?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”,即使它正在比较两个相同密码的哈希值,为什么?
编辑 - 为了澄清,我意识到哈希值并不相同,否则我只是比较它们而不是使用函数。
答案 0 :(得分:7)
您需要将密码和哈希值传递给password_verify()
:
password_verify('testpassword', $hash1)
参考文献:
PS:password_hash
预期产生不同的结果,因为它包含随机盐