使用PHP 的密碼管理功能安全地儲存和驗證密碼
在Web 應用程式中處理密碼時,安全性至關重要。 PHP 5.5 引進了password_hash() 和password_verify() 函數來協助完成這項關鍵任務。
建立安全雜湊
password_hash() 函數產生一個安全雜湊使用 BCRYPT 等演算法計算給定密碼。要建立哈希,它需要三個參數:密碼本身、雜湊演算法(例如 PASSWORD_BCRYPT)和選項陣列。這些選項包括指定成本(計算因素)和唯一的鹽(隨機生成的數據添加到哈希中以增加其唯一性)。
儲存密碼和鹽
與最初的查詢相反,正確的方法是將雜湊值和鹽都儲存在資料庫中。這是因為password_hash() 傳回一個包含這兩個元素的字串。因此,在 MySQL 語句中,例如:
INSERT INTO users(username, password_hash) VALUES($username, $hashAndSalt);
密碼驗證
當使用者登入時,必須根據儲存的雜湊來驗證他們輸入的密碼。為此,檢索儲存的雜湊(包含雜湊和鹽)並將其傳遞給password_verify():
if (password_verify($password, $hashAndSalt)) { // Verified }
其他安全措施
超越使用這些功能時,請考慮其他安全措施:
以上是PHP 的password_hash() 和password_verify() 函數如何安全地儲存和驗證密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!