ZeroTool Workbench
Bcrypt 生成器
在浏览器中生成和验证 bcrypt 密码哈希。可调计算轮次(4–14),Web Worker 驱动保持界面流畅。密码不离开您的设备。
使用方法
生成模式
- 在明文密码输入框中输入密码。
- 调整计算轮次滑块(默认:12),预估耗时实时更新。
- 点击生成 Hash。Web Worker 在后台计算时界面保持响应。
- 点击复制将哈希值复制到剪贴板。
验证模式
- 切换到验证标签。
- 输入明文密码和已存储的 bcrypt 哈希值。
- 点击验证,结果显示匹配或不匹配。
计算轮次参考
| 轮次 | 预估耗时 | 适用场景 |
|---|---|---|
| 10 | ~60 ms | 高流量 API、遗留系统 |
| 12 | ~250 ms | Web 应用推荐默认值 |
| 13 | ~500 ms | 较高安全性、中等流量 |
| 14 | ~1 s | 高安全性场景 |
安全提示
- 切勿用 MD5、SHA-1 或无盐 SHA-256 存储密码——它们速度过快,容易被彩虹表攻击。
- bcrypt 哈希输出中包含计算轮次,已存储的旧哈希在提升轮次后仍可正确验证。
- 本工具使用 bcryptjs 库——与所有 bcrypt 实现兼容的纯 JavaScript 移植版。
FAQ
bcrypt 是什么,适合哪些场景?
bcrypt 是一种密码哈希函数,其设计目标就是慢速和高计算成本,使暴力破解不切实际。适合在数据库中存储用户密码——切勿存储明文或 MD5/SHA 这类快速哈希值。
计算轮次(Cost Factor)的作用是什么?
计算轮次控制密钥派生函数的迭代次数,每增加 1,计算时间翻倍。轮次 12(~250ms)是当前大多数 Web 应用的推荐默认值,对安全性要求更高且可接受更长延迟时可选 14。
为什么高轮次下生成哈希需要几秒钟?
这是刻意设计的——bcrypt 就是为了慢而生。对您而言昂贵的计算,对攻击者而言同样昂贵。Web Worker 会在后台运行计算,保持浏览器界面响应流畅。
密码会被发送到服务器吗?
不会。所有哈希计算和验证均在浏览器中通过 bcryptjs 库完成,不进行任何网络传输。
为什么同一个密码每次生成的哈希都不同?
bcrypt 在哈希中内嵌了随机盐值。每次点击生成都会产生唯一的盐,所以两个哈希值看起来不同,但都能正确验证原始密码。
合法的 bcrypt 哈希格式是什么?
bcrypt 哈希以 $2b$(或旧版的 $2a$/$2x$/$2y$)开头,后跟计算轮次和 53 个字符的盐+哈希组合。示例:$2b$12$...