1
嗨,我想在PHP中使用password_hash()來散列我的密碼。這部分是好的,但比較哈希無論如何都返回false。要登錄我檢查用戶帳戶數據庫並獲取密碼哈希,然後把它比作在鍵入的密碼,我的代碼如下所示:PHP password_verify總是返回false
$password = $_SERVER["PHP_AUTH_PW"];
$hash = $row["password"];
if (password_verify($password, $hash)) {
// CREATE SESSION VARIABLES //
}
else{
header("HTTP/1.1 404 Not Found");
}
正如你可以看到,在中帶過來輸入的密碼HTTP標頭。我不認爲這會混淆密碼字符串,因爲我可以直接將其與數據庫中的密碼進行比較(不使用散列)。有任何想法嗎?我有三倍檢查我的PHP版本,我可以散列密碼,所以不是這樣。
你是否檢查過你給'password_verify'的參數是你期望它們的? – Flosculus
以及數據庫中的密碼已經用password_hash()函數進行散列處理。然後通過輸入的用戶名和輸入的公司ID識別並獲取。然後將輸入的密碼與使用password_verify()函數的散列密碼進行比較。但它總是返回錯誤 – Aaron
不,我是說你手動檢查並確保'$ password'和'$ hash'的值是檢索的正確值,無論它們是否驗證。 – Flosculus