首頁 >後端開發 >php教程 >為什麼 PHP 中 `password_verify` 回傳 False?

為什麼 PHP 中 `password_verify` 回傳 False?

Patricia Arquette
Patricia Arquette原創
2024-12-04 06:26:13817瀏覽

Why is `password_verify` Returning False in PHP?

為什麼password_verify回傳False?

當嘗試使用PHP的password_verify函數驗證密碼時,如下所示,您可能會遇到false正面:

if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {
    // ...
}

原因:

問題可能源自於資料庫中密碼雜湊的長度。根據 PHP 手冊,建議將密碼雜湊儲存在能夠容納至少 255 個字元的欄位中。這確保了與 bcrypt 演算法的兼容性,該演算法對長度敏感。

解決方案:

將資料庫中密碼雜湊的長度擴充至至少 255人物。為此,請相應地修改您的資料庫架構,如下所示:

ALTER TABLE users MODIFY COLUMN user_password_hash VARCHAR(255);

這將允許password_verify 透過將密碼與儲存的雜湊值進行比較來準確驗證密碼。

以上是為什麼 PHP 中 `password_verify` 回傳 False?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn