BCrypt哈希生成

密码安全哈希与验证

BCrypt 哈希工具

哈希结果

工具概述

BCrypt 是一种专为密码存储设计的自适应哈希函数,基于 Blowfish 加密算法。它通过引入工作因子(cost factor)使计算变慢,从而有效抵抗暴力破解和彩虹表攻击。BCrypt 生成的哈希值包含算法标识、cost、salt 和哈希结果,格式为 $2a$10$...

本工具支持两种模式:

  • 生成哈希:输入密码,设置 cost(默认10),生成 BCrypt 哈希值。
  • 验证密码:输入密码和哈希值,验证密码是否匹配。

常见问题与回答

1. BCrypt 为什么适合密码存储?

BCrypt 是专为密码设计的哈希算法,具有自适应的 cost factor,可以随硬件性能提升而增加计算成本,有效抵御暴力破解攻击。同时内置 salt 防止彩虹表攻击。

2. Cost 参数应该设置多少?

Cost 范围是 4-12,默认 10。Cost 每增加 1,计算时间翻倍。建议设置为使哈希计算耗时 100-500ms 的值。一般 10-12 是较好的选择。

3. BCrypt 哈希值格式是什么?

格式为 $2a$10$N9qo8uLOickgx2ZMRZoMy.Mrq7M7F6BfD5YWrT6gXO4aPnD7Q.P/S,其中 $2a$ 是算法版本,10 是 cost,后面是 salt 和哈希值。

4. BCrypt 与 MD5/SHA 有什么区别?

MD5/SHA 设计目的是快速计算,适合文件校验;BCrypt 设计目的是慢速计算,适合密码存储。快速算法容易被暴力破解。

5. 数据会上传到服务器吗?

不会。所有计算都在浏览器本地完成,确保密码安全。

6. BCrypt 有长度限制吗?

BCrypt 最多支持 72 字节的密码。超过部分会被忽略。建议使用前对密码进行预处理(如 HMAC)。

7. $2a$ 和 $2b$ 有什么区别?

都是 BCrypt 版本标识。$2a$ 是最常用的版本,$2b$ 修复了一些边界情况。两者在大多数情况下兼容。

8. 为什么不用 SHA256+salt?

SHA256 计算速度太快,容易被 GPU/ASIC 加速破解。BCrypt 的内存依赖特性使其难以被硬件加速。