安全密碼儲存:SHA1 vs md5 vs SHA256 vs bcrypt
設計安全登入系統時,雜湊演算法的選擇至關重要。傳統選項 SHA1、md5 和 SHA256 存在已知漏洞。雖然 salt 可以減輕這些風險,但考慮更強大的替代方案也很重要。
bcrypt:首選
「PHP 使用哪一種雜湊演算法」的答案登入? 」很清楚:bcrypt。與SHA1、md5 和SHA256 不同,bcrypt 是為安全性而不是速度而設計的。它使用較慢的哈希過程以及復雜的輪數和鹽來阻止暴力攻擊。
PHP 5.5 實作
現代版的PHP (5.5) 提供本機bcrypt 支援透過password_hash()函數:
<code class="php">// Creating a hash $hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]); // Verifying the password against the stored hash if (password_verify($password, $hash)) { // Success! Log the user in here. }</code>
PHP版本
對於舊版的PHP,您可以使用password_compat函式庫來實作bcrypt:
<code class="php">// Creating a hash $hash = password_compat_hash($password, PASSWORD_BCRYPT); // Verifying the password against the stored hash if (password_compat_verify($password, $hash)) { // Success! Log the user in here. }</code>
注意事項
注意事項
注意事項
注意事項
它會默默地截斷超過72 個字元的密碼。 >不要建立自己的解決方法,而是使用安全庫,例如ZendCrypt 或PasswordLock。它提供無與倫比的密碼破解保護,確保您的登入系統的完整性。以上是哪種哈希演算法最適合 PHP 中的安全密碼儲存?的詳細內容。更多資訊請關注PHP中文網其他相關文章!