-2
通过运行此代码,我得到无效的密码。为什么密码与散列密码不匹配?php上的password_hash()函数/获取无效的密码
<?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.';
}
?>
哈希是什么样的?它是否包含'$'? – RamRaider
'if(password_verify($ passwd,$ hash)){//}'就足够了,验证时没有第三个参数。 – Ekin
因为你没有'error_reporting'出现,或者你没有'display_errors'打开,或者你没有阅读手册。 ['password_verify'](http://php.net/password-verify)需要2个参数。你传递了3个参数。这意味着函数不会返回,而是会触发错误。 – Sherif