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

bcrypt 雜湊產生與驗證工具

以 bcrypt 雜湊密碼,並檢查密碼是否與雜湊值相符。

雜湊密碼

0 / 72 位元組

成本

每提高一級,時間就加倍。登入用途通常是 10–12。雜湊中記錄了成本,所以驗證時不需要設定。

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

以雜湊驗證密碼

$2a$、$2b$ 或 $2y$,60 個字元。成本會從雜湊中讀取。

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

bcrypt 是一種刻意設計得很慢的密碼雜湊:伺服器儲存的是 bcrypt 雜湊而不是密碼,登入時再把輸入的內容雜湊後比對。每個雜湊都帶有自己的隨機鹽值與成本,所以同一個密碼每次都會得到不同的雜湊,而每一個都能驗證成功。你可以用本頁為設定檔或測試帳號建立雜湊,或確認某個密碼是否與已儲存的雜湊相符。雜湊在瀏覽器中計算,密碼不會離開你的裝置;免費,也不需要註冊。

如何產生與驗證 bcrypt 雜湊

  1. 輸入密碼。雜湊會隨輸入即時出現,並顯示在你的裝置上花了多少時間。
  2. 如果你的系統需要其他成本值,請移動「成本」滑桿(預設為 10)。
  3. 複製 $2b$ 雜湊,或點擊下方的「驗證看看」確認它能驗證成功。
  4. 要檢查既有的雜湊,請在「以雜湊驗證密碼」下方貼上雜湊與密碼:會顯示「相符」或「不相符」。

功能

  • $2b$ 雜湊,每次都使用新的隨機 16 位元組鹽值
  • 成本 4~16(預設 10),並顯示在你的裝置上計算雜湊所花的時間
  • 以 $2a$、$2b$ 與 $2y$ 雜湊驗證密碼:顯示「相符」或「不相符」,以及版本與成本
  • 計算位元組數是否超過 bcrypt 的 72 位元組上限,並提醒哪些字元會被忽略
  • 在背景執行緒中執行,高成本也不會讓頁面卡住:可以「停止」,或「重新雜湊」以使用新的鹽值
  • 辨識 Argon2 雜湊,並提供 Argon2 工具的連結

隱私安全嗎?

是的。雜湊與驗證都在瀏覽器中以 WebAssembly 於背景執行緒執行;密碼絕不會上傳或儲存。

常見問題

bcrypt 雜湊可以解密嗎?

不行。bcrypt 是單向雜湊:沒有任何金鑰能把它還原成密碼。找出密碼的唯一方法是逐一猜測並雜湊每次的猜測,而 bcrypt 刻意讓這個過程變慢。要測試你認為正確的密碼,請使用「以雜湊驗證密碼」。

為什麼同一個密碼每次產生的雜湊都不同?

每個雜湊都會使用新的隨機 16 位元組鹽值,並存放在雜湊字串之中。驗證時會從雜湊讀回鹽值,所以這些雜湊都能用同一個密碼驗證成功。

應該選擇多少成本?

每提高一級,運算量就加倍。登入用途通常是 10 到 12;請選擇伺服器每次登入負擔得起的最高成本,通常約四分之一秒到半秒。這裡顯示的時間,是在你自己裝置上的結果。

為什麼 bcrypt 會忽略長密碼的一部分?

bcrypt 只讀取密碼以 UTF-8 編碼的前 72 個位元組。中文、韓文等文字每個字佔 3 個位元組,所以 24 個字就已達上限。有字元被忽略時工具會提醒你;更長的通關密語可以改用沒有這項限制的 Argon2。

$2a$、$2b$ 與 $2y$ 有什麼不同?

這些字母代表特定實作中舊錯誤的修正;對一般密碼來說,計算結果相同。本工具產生目前 OpenBSD 使用的 $2b$ 前綴,並能驗證全部三種。在這裡產生的雜湊,已用 Python 的 bcrypt 函式庫與 Linux 的 crypt() 驗證過。

相關工具