Bcrypt 雜湊/校驗

#️⃣ Bcrypt Hash / Check - Bcrypt

Hash and verify Bcrypt password hashes entirely in your browser: choose a cost factor (rounds), generate a standard 60-character salted hash, and check plaintext against a stored hash. No data is uploaded.

📐 工作原理與說明

Bcrypt 雜湊串結構:$2b$10$salt_hash,其中 $2b$ 為演算法版本、10 為成本因子(cost factor,指數級決定計算量,10≈150ms、12≈600ms)、其後 22 字元為隨機鹽、最後 31 字元為派生雜湊。校驗時無需單獨儲存鹽,鹽已內嵌在雜湊串中隨密文一同儲存;口令比對採用恆定時間比較,防止時序側通道攻擊。

💡 Bcrypt 內建鹽值(salt),相同明文每次生成結果不同;校驗時自動從雜湊中提取鹽。bcryptjs 庫來自 jsdelivr CDN,計算完全在本地。

📚 深度解析:Bcrypt 雜湊/校驗

💡 常見使用場景

生成並檢視雜湊格式
口令 password 經 cost=10 生成固定 60 字元的雜湊串,格式為 $2b$10$ 後接 22 字元鹽與 31 字元雜湊(版本 $2b$、成本因子 10);相同口令每次結果不同,因為鹽是隨機生成的。
校驗口令
把使用者輸入的明文與庫裡儲存的雜湊傳入比對函式,返回 true/false;無需手動拆出鹽,bcrypt 自動從雜湊串中讀取鹽值再計算。

❓ 常見問題(FAQ)

bcrypt 為什麼比 MD5/SHA 更適合存密碼?
MD5/SHA 是快速摘要,易被 GPU 暴力破解;bcrypt 刻意放慢(成本因子指數級增加工作量)且強制每口令隨機鹽,抵抗彩虹表與暴力破解,是 OWASP 推薦的口令雜湊方案之一。
成本因子 rounds 越大越好嗎?
越大越安全但也越慢。一般 10–12 即可(單次要 0.1–0.6 秒);過高會拖慢登入並被拒絕服務利用。應隨硬體提升定期調高。
前端做雜湊安全嗎?
本工具純本地計算、口令不上傳,適合演示與離線校驗;但真正儲存密碼仍應在後端用 bcrypt(或 Argon2)並配合限速、防爆破策略,前端雜湊不能替代服務端安全。