哈希密码
bcrypt
— — 点击哈希生成 — — 验证哈希
关于 Bcrypt 哈希
Bcrypt 是专为存储密码设计的哈希算法,它内置随机盐并通过可调的 cost 因子刻意放慢计算速度,从而大幅抬高暴力破解的成本。密码不会离开你的浏览器,适合在开发阶段造测试账号、核对登录逻辑或排查迁移后的密码校验问题。密码不会离开你的浏览器,注意 bcrypt 刻意放慢的特性也意味着不适合做大规模实时校验,适合存储前的离线处理。例如把密码 mypassword 以成本因子 10 哈希,会得到 $2b$10$ 开头的 60 字符 bcrypt 串,每次生成盐值不同。成本因子每提高一档,计算耗时大约翻倍,选型时需在安全性与响应延迟之间权衡;生成的哈希串自带盐值与成本标识,可直接存入数据库,但请记住哈希不可逆,找回密码只能走重置流程而无法反推原始口令。
使用方法
- 打开「Bcrypt 哈希」
- 输入待处理的内容并设置参数
- 根据需要调整输出选项
- 点击「生成」按钮,结果实时显示
- 复制或导出结果
使用场景
- 生成测试账号哈希 — 为本地数据库手动插入一条用户记录时,生成符合应用格式的 Bcrypt 密码哈希。
- 验证登录逻辑 — 用明文和库里存的哈希做匹配,确认后端 compare 逻辑是否正确。
- 调优 cost 因子 — 在目标服务器上试不同 cost 值,找到验证耗时与安全的平衡点。
- 排查迁移问题 — 系统迁移后核对老哈希是否仍能被新代码正确校验。
- 审查存储格式 — 检查现有哈希字符串里的版本前缀(2a/2b)与盐是否规范。
常见问题
为什么同一密码每次生成的哈希都不同?
因为 Bcrypt 每次都用新的随机盐,盐被编码进哈希字符串本身。验证时算法会从哈希里读出盐重新计算,所以哈希不同不代表错误,依然能正确匹配。
cost 因子设多少合适?
cost 每加 1,计算量翻倍。常见取值 10-12;应在生产硬件上调到单次哈希约 100-300 毫秒,既挡住暴力破解又不拖垮登录体验。
Bcrypt 有长度限制吗?
有。Bcrypt 只处理输入的前 72 个字节,超出部分被忽略。若需支持超长密码,常见做法是先用 SHA-256 预哈希再交给 Bcrypt。
Bcrypt 和 SHA-256 能互换吗?
不能用于存密码。SHA-256 速度极快,反而利于攻击者爆破;Bcrypt 故意慢且带盐,是密码存储的正确选择,SHA-256 更适合做完整性校验。
2a、2b、2y 前缀有什么区别?
它们是 Bcrypt 的版本标识,因历史上的实现 bug 而分化。现代库默认用 2b,最为规范;只要库支持,旧前缀的哈希通常仍可正常验证。
广告