通過運行此代碼,我得到無效的密碼。爲什麼密碼與散列密碼不匹配?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