🔐
bcrypt checker,
Bcrypt 雜湊生成器與驗證器
完全在您的瀏覽器中透過 Bcrypt 進行密碼的雜湊與驗證。
您的密碼絕不會被傳送到任何伺服器。
🔒
100% 本地處理
密碼僅在您的瀏覽器內部處理
⚡
生成雜湊
輕鬆微調成本 (Rounds) 參數
✓
比對雜湊
快速驗證密碼是否與雜湊相符
about,
關於本工具
一個專為後端開發人員和資安工程師設計的免費工具,可讓您即時生成 Bcrypt 密碼雜湊並進行驗證 — 所有的操作都在瀏覽器中完成。
本工具 100% 於本地端運行。您的密碼完全在瀏覽器中透過 Web Worker 進行處理,絕不會被傳送到任何伺服器。
how to use,
使用方法
生成雜湊
對密碼進行雜湊
在左側面板中輸入明文密碼,設定成本回合數 (建議為 10),然後點擊「生成雜湊」。複製結果即可在您的應用程式中使用。
檢查是否相符
針對現有的雜湊進行驗證
在右側面板中貼上現有的 Bcrypt 雜湊 ($2b$10$...) 以及明文密碼,然後點擊「比對」以查看它們是否相符。
glossary,
詞彙表
- bcrypt
- 一種刻意設計成運算緩慢且耗費資源的密碼雜湊演算法。它會自動生成鹽值 (salt) 並套用金鑰延展 (key stretching),使其能高度抵禦彩虹表 (rainbow table) 和暴力破解攻擊。
- 雜湊 (Hash)
- 由單向函數從輸入資料產生的一串固定長度字串。從運算上來說,要將雜湊反向推導回原始輸入是不可行的,因此身分驗證是透過重新雜湊並比對來完成的。
- 鹽值 (Salt)
- 在進行雜湊之前附加在密碼後方的一串隨機字串。由於每個鹽值都是獨一無二的,因此兩個相同的密碼會產生不同的雜湊值,從而使彩虹表攻擊失效。
- 成本係數 (Cost Factor / Work Factor / Rounds)
- 一個控制 bcrypt 演算法迭代次數的參數 (以 2 的次方計算)。每增加一個單位,運算時間就會加倍,讓您可以應付未來的硬體效能提升。
- 彩虹表攻擊 (Rainbow Table Attack)
- 一種使用預先計算好的雜湊值表來破解密碼的攻擊方式。bcrypt 中使用獨特的鹽值使這種攻擊變得無效。
- 暴力破解攻擊 (Brute-Force Attack)
- 一種有系統地嘗試所有可能密碼組合的攻擊方式。因為 bcrypt 刻意將運算速度放慢,這大幅降低了進行暴力破解嘗試的實用性。
- 金鑰延展 (Key Stretching)
- 一種將雜湊運算執行多次的技術,目的在於刻意增加每次驗證所需的時間。在 bcrypt 中,成本係數控制了執行的迭代次數。
faq,
常見問題
- Q.我的密碼會傳送到伺服器嗎?
- 不會。所有的 bcrypt 雜湊運算與比對都在您的瀏覽器的 JavaScript 環境中完全執行。您的密碼和雜湊值絕不會離開您的裝置。
- Q.bcrypt 現在仍然安全嗎?
- 是的。自 1999 年發表以來,bcrypt 仍然是最受廣泛推薦的密碼雜湊演算法之一。搭配適當的成本係數(cost factor),它可以為抵禦現代硬體攻擊提供強大的保護。
- Q.建議的成本係數 (Rounds) 是多少?
- 截至 2024 年,通常建議的成本係數為 12-14。請設定一個讓您的伺服器進行單次雜湊大約需要 0.25-1 秒的數值,以便在保持可用性的同時抵禦攻擊。
- Q.bcrypt 和 SHA-256 有什麼差別?
- SHA-256 是一種快速的通用雜湊函數 — 對於儲存密碼來說速度太快了,這會讓攻擊者佔有優勢。bcrypt 是專門為密碼設計的:它刻意放慢運算速度,並包含自動加入的鹽值(salt)。
- Q.我應該在哪裡使用生成的雜湊?
- 在 Web 應用程式的驗證中,您應該將 bcrypt 雜湊儲存在資料庫中,而不是儲存明文密碼。登入時,您對輸入的密碼重新進行雜湊,並將其與儲存的雜湊進行比對。
- Q.我可以反向推導 bcrypt 雜湊以獲得原始密碼嗎?
- 不可以。bcrypt 是一個單向函數。從運算上來說,要從雜湊中推導出原始密碼是不可行的 — 這正是它能安全儲存密碼的基本特性。
- Q.我可以在智慧型手機上使用嗎?
- 可以。但是,如果設定了很高的成本係數,由於行動裝置的處理器通常比桌上型電腦慢,雜湊運算可能會花費明顯較長的時間。
use cases,
使用場景
🔒
密碼儲存測試
無需編寫任何程式碼即可驗證後端 API 的密碼儲存實作。
🧪
登入功能除錯
快速檢查儲存在資料庫中的雜湊是否確實與預期的明文密碼相符,以找出驗證機制的錯誤。
📚
資安學習
嘗試不同的成本係數,以了解 bcrypt 的工作係數如何影響運算時間和安全性強度。
⚙️
成本效能測試
在更新正式環境的設定之前,比較成本係數 10 和 12 之間的效能影響。
Send Feedback
Please let us know your thoughts to help us improve the tool.
Feedback sent successfully. Thank you for your cooperation!
An error occurred. Please try again later.
Feedback is temporarily suspended
The server is busy or spam protection is active. Please try again later.