在資料庫中保護使用者密碼時,採用強大的加密技術至關重要。 PHP 5.5 引入了兩個專門為此目的而設計的基本函數:password_hash() 和password_verify()。讓我們深入研究它們的正確用法。
您提出的方法(涉及將成本和唯一的鹽傳遞給password_hash())並不是最佳的。相反,依靠內建的鹽和成本機制,它可以在內部安全地產生這些值。該函數傳回一個組合了哈希和鹽的哈希。
儲存雜湊和鹽:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
將 $hashAndSalt 插入資料庫而不是分割鹽和雜湊。
驗證密碼:
if (password_verify($password, $hashAndSalt)) { // Verified }
從資料庫擷取$hashAndSalt,並使用password_verify()直接將其與提供的密碼進行比較。它將在內部處理鹽比較。
其他安全注意事項:
雖然使用這些函數是實現安全密碼管理的一個步驟,但請考慮其他措施,例如:
以上是如何使用password_hash() 和password_verify() 在PHP 5.5 中安全地儲存和驗證使用者密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!