首頁 >資料庫 >mysql教程 >我應該使用什麼資料類型和長度來儲存哈希密碼?

我應該使用什麼資料類型和長度來儲存哈希密碼?

Barbara Streisand
Barbara Streisand原創
2024-12-24 02:14:17616瀏覽

What Data Type and Length Should I Use for Storing Hashed Passwords?

雜湊密碼的資料類型和最佳長度

問題:如何決定雜湊密碼的適當資料類型和長度?

在實作密碼雜湊時,選擇合適的資料類型和長度來儲存雜湊值至關重要。通常,雜湊函數會產生固定長度的結果,但長度和表示形式會根據具體演算法而有所不同。

答案:資料類型和長度的選擇取決於雜湊演算法使用:

  • MD5: 128 位元雜湊;可以儲存為CHAR(32) 或BINARY(16)。
  • SHA-1: 160 位元雜湊;可以儲存為 CHAR(40) 或 BINARY(20)。
  • SHA-256: 256 位元雜湊;可儲存為 CHAR(64) 或 BINARY(32)。
  • SHA-512: 512 位元雜湊;可儲存為 CHAR(128) 或 BINARY(64)。
  • BCrypt: 448 位元雜湊;可能需要 CHAR(56)、CHAR(60)、CHAR(76)、BINARY(56) 或 BINARY(60)。

建議:

NIST 建議使用 SHA-256 或更高的雜湊函數來實現互通性應用程式。然而,僅利用這些雜湊函數不足以安全儲存密碼。

因此,建議使用 Bcrypt 或 Argon2i 等金鑰強化雜湊演算法。例如,PHP 的password_hash() 函數預設使用Bcrypt,產生60 個字元的雜湊值。為了適應這種情況,請考慮使用 CHAR(60) 資料類型進行儲存。

以上是我應該使用什麼資料類型和長度來儲存哈希密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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