【发布时间】:2016-08-21 09:29:43
【问题描述】:
我通过运行此代码得到无效密码。为什么密码与哈希密码不匹配?
<?php
$passwd = "imad";
$hash = password_hash($passwd,PASSWORD_DEFAULT,['cost'=>10]);
echo "$passwd".' :'.$hash."<br/><br/>";
if (password_verify($passwd, $hash,['cost'=>10])) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
?>
【问题讨论】:
-
哈希是什么样的?是否包含
$? -
if (password_verify($passwd, $hash)){ // }就够了,验证时没有第三个参数。 -
因为您没有打开
error_reporting,或者您没有打开display_errors,或者您只是没有阅读手册。password_verify正好有 2 个参数。您正在传递 3 个参数。这意味着该函数不会返回,而是会触发错误。
标签: php security password-hash php-password-hash