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)并配合限速、防爆破策略,前端哈希不能替代服务端安全。