為什麼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中文網其他相關文章!