Toolonit
  1. 首頁
  2. 加密
  3. Argon2 雜湊

Argon2 雜湊產生與驗證工具

以現代密碼雜湊標準 Argon2id 雜湊並驗證密碼。

雜湊密碼

輸入密碼:雜湊會顯示在這裡。

參數

變體
預設組合
記憶體

雜湊中為 m=19456(KiB)

迭代次數
平行度

記憶體的通道數。在這裡會依序執行,伺服器則可能平行執行。它會改變雜湊,所以請與伺服器一致。

雜湊長度
鹽值

每次雜湊都使用新的 16 個隨機位元組。

以雜湊驗證密碼

PHC 字串:$argon2id$、$argon2i$ 或 $argon2d$。參數會從中讀取。

輸入密碼與雜湊即可驗證。

Argon2 是密碼雜湊競賽(Password Hashing Competition)的優勝者,並已標準化為 RFC 9106。它刻意設計得既慢又耗費記憶體,讓以 GPU 猜測密碼的成本變得很高。本頁會依你選擇的參數產生 Argon2 雜湊,輸出密碼函式庫儲存的 PHC 字串($argon2id$v=19$m=…,t=…,p=…$salt$hash)與原始十六進位值,也能以既有的 PHC 字串驗證密碼。全部在瀏覽器中執行,密碼不會離開你的裝置;免費,也不需要註冊。

如何產生與驗證 Argon2 雜湊

  1. 輸入密碼。雜湊會隨輸入即時出現,並顯示在你的裝置上花了多少時間。
  2. 選擇預設組合,或依伺服器設定調整記憶體、迭代次數與平行度。
  3. 複製 PHC 字串,或複製十六進位的原始雜湊與鹽值。
  4. 要檢查已儲存的雜湊,請在「以雜湊驗證密碼」下方貼上雜湊與密碼:會顯示「相符」或「不相符」。

功能

  • Argon2id(預設)、Argon2i 與 Argon2d,版本 19
  • 預設組合:OWASP 最低建議(19 MiB、t=2、p=1)、RFC 9106 低記憶體(64 MiB、t=3、p=4)與高強度(256 MiB、t=3、p=4)
  • 記憶體 1 MiB~1 GiB、迭代次數 1~16、平行度 1~16、雜湊長度 4~128 位元組
  • 隨機的 16 位元組鹽值,或以文字、十六進位或 Base64 輸入自訂鹽值(8~1024 位元組)
  • PHC 字串,以及十六進位的原始雜湊與鹽值,各有「複製」按鈕
  • 驗證 $argon2id$、$argon2i$ 與 $argon2d$ 字串(v=19 或 v=16),參數直接從雜湊讀取

隱私安全嗎?

是的。Argon2 在瀏覽器中以 WebAssembly 於背景執行緒執行,鹽值則來自瀏覽器的安全亂數產生器。密碼絕不會上傳或儲存。

常見問題

Argon2id、Argon2i 還是 Argon2d?

請用 Argon2id。RFC 9106 與 OWASP 都建議以它雜湊密碼:它結合了 Argon2i 抵抗旁路攻擊的能力,以及 Argon2d 抵抗 GPU 破解的能力。只有在需要配合既有系統時,才選擇其他變體。

記憶體、迭代次數與平行度該怎麼設定?

OWASP 對 Argon2id 的最低建議是 19 MiB、迭代 2 次、1 條通道。記憶體有限時,RFC 9106 建議 64 MiB、迭代 3 次、4 條通道。記憶體越多,防護越強;請逐步提高,直到一次雜湊的時間達到伺服器每次登入所能負擔的上限。

Argon2 還是 bcrypt?

新系統請用 Argon2id。兩者都刻意設計得很慢,但 Argon2 還需要大量記憶體,讓 GPU 破解的成本變高,而且沒有 72 位元組的密碼長度限制。bcrypt 歷史較久,幾乎到處都有支援,在無法使用 Argon2 的地方仍是合理的選擇。

$argon2id$ PHC 字串是什麼?

這是 Argon2 參考實作儲存雜湊的格式:變體、版本(v=19)、以 KiB 為單位的記憶體(m)、迭代次數(t)、通道數(p),接著是不含填充的 Base64 鹽值與雜湊。在這裡產生的字串,與參考函式庫(libargon2)對相同輸入寫出的結果逐字相同,libsodium 的 crypto_pwhash_str_verify 也能接受(Argon2id 與 Argon2i,雜湊長度 16 位元組以上)。

為什麼記憶體不能超過 1 GiB?

因為雜湊在瀏覽器分頁中執行,而 WebAssembly 的記憶體有限制:單次配置無法達到 2 GiB,手機甚至常常拒絕小得多的配置。因此本頁的上限是 1 GiB,需要更多記憶體的雜湊(例如 RFC 9106 的 2 GiB 選項)無法在這裡產生或驗證。

相關工具