哈希密码
bcrypt
— — 点击哈希生成 — — 验证哈希
关于 Bcrypt 哈希
Bcrypt 是专为存储密码设计的哈希算法,它内置随机盐并通过可调的 cost 因子刻意放慢计算速度,从而大幅抬高暴力破解的成本。本工具在浏览器本地运行 Bcrypt:既能为明文密码生成哈希(输出已包含算法标识、cost 和盐),也能验证某个明文是否匹配已有哈希。密码不会离开你的浏览器,适合在开发阶段造测试账号、核对登录逻辑或排查迁移后的密码校验问题。 建议在日常开发中收藏本工具,需要生成密钥或哈希值时即可快速打开使用。所有计算均在浏览器本地完成,敏感数据不会上传,可放心操作。
使用场景
- 生成测试账号哈希 — 为本地数据库手动插入一条用户记录时,生成符合应用格式的 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,最为规范;只要库支持,旧前缀的哈希通常仍可正常验证。
有浏览器兼容性要求吗?
本工具兼容所有现代浏览器(Chrome、Firefox、Edge、Safari),无需安装任何插件或扩展。
可以离线使用吗?
首次加载后,部分功能在离线状态下仍可使用。页面资源加载后,核心逻辑完全在浏览器本地运行,不依赖网络。