bcrypt 哈希生成与校验
用 bcrypt 对密码进行哈希,并校验密码与哈希是否匹配。
生成密码哈希
0 / 72 字节
每加 1,耗时翻一倍。登录场景通常用 10–12。哈希中记录了成本,校验时无需设置。
输入密码后,哈希会显示在这里。
校验密码与哈希
$2a$、$2b$ 或 $2y$,共 60 个字符。成本从哈希中读取。
输入密码和哈希即可校验。
bcrypt 是一种慢速密码哈希:服务器存储的是 bcrypt 哈希而不是密码本身,登录时对输入的密码计算哈希来核对。每个哈希都带有自己的随机盐和成本参数,所以同一个密码每次都会得到不同的哈希,而其中任何一个都能校验通过。你可以用本页为配置文件或测试账号生成哈希,或者确认某个密码是否与已存储的哈希匹配。哈希计算在浏览器中进行,密码不会离开你的设备;免费,无需注册。
如何生成和校验 bcrypt 哈希
- 输入密码。哈希会随输入实时生成,并显示在你的设备上耗时多久。
- 如果你的系统需要其他成本值,拖动“成本”滑块(默认 10)。
- 复制 $2b$ 哈希,或点下方的“校验一下”,看它能否校验通过。
- 要校验已有的哈希,把它和密码一起粘贴到“校验密码与哈希”下:会显示“匹配”或“不匹配”。
功能
- 生成 $2b$ 哈希,每次使用新的 16 字节随机盐
- 成本 4–16(默认 10),并显示在你的设备上计算所用的时间
- 校验密码是否与 $2a$、$2b$、$2y$ 哈希匹配:显示“匹配”或“不匹配”,以及版本和成本
- 按 bcrypt 的 72 字节上限统计字节数,并提示哪些字符会被忽略
- 在后台 Worker 中运行,成本再高也不会卡住页面:可以点“停止”,或点“重新计算”换一个新盐
- 识别出 Argon2 哈希时,会给出 Argon2 工具的链接
隐私安全吗?
是的。哈希生成和校验都在浏览器中通过 WebAssembly 在后台 Worker 里运行;密码不会上传或保存。
常见问题
bcrypt 哈希可以解密吗?
不可以。bcrypt 是单向哈希:没有任何密钥能把它还原成密码。要找出密码,唯一的办法是逐个猜测并计算每次猜测的哈希,而 bcrypt 故意让这个过程变慢。如果想测试你认为正确的密码,请使用“校验密码与哈希”。
为什么同一个密码每次生成的哈希都不同?
每个哈希都会使用新的 16 字节随机盐,并把盐保存在哈希字符串中。校验时会从哈希中读回盐,所以这些哈希都能用同一个密码校验通过。
成本应该选多少?
成本每加 1,计算量就翻一倍。登录场景通常用 10 到 12;请选择服务器每次登录能承受的最高成本,通常约为 0.25 到 0.5 秒。这里显示的时间是在你自己设备上测得的。
为什么 bcrypt 会忽略长密码的一部分?
bcrypt 只读取密码按 UTF-8 编码后的前 72 个字节。汉字等字符每个占 3 个字节,所以 24 个汉字就已达到上限。有字符被忽略时,工具会提醒你;更长的密码短语可以改用没有此限制的 Argon2。
$2a$、$2b$ 和 $2y$ 有什么区别?
这些字母标记的是某些实现中旧 bug 的修复;对于普通密码,它们的计算结果相同。本工具生成当前 OpenBSD 使用的前缀 $2b$,三种都能校验。在这里生成的哈希已通过 Python 的 bcrypt 库和 Linux crypt() 的校验。