bcrypt 哈希生成器
生成哈希
数值越高越慢,也更安全。12 是不错的默认值。
有时你会从旧备份里拿到一个 bcrypt 哈希和一个明文密码,需要确认它们是否匹配。或者你有一个密码,想知道在给定的成本因子(cost)下会生成什么哈希。这个工具两件事都能做:输入密码即可生成新哈希;粘贴哈希和候选密码,它会告诉你验证是否成功,使用与生产环境登录检查相同的恒定时间比较。
生成或验证 bcrypt
-
1
选择模式
从密码生成新哈希,或用密码验证已有的 `$2a$` / `$2b$` / `$2y$` 哈希。
-
2
生成模式:输入明文和 cost
cost 取值 4-13;10-12 为常见范围。每个哈希都会生成一个 16 字节的随机盐(salt)。
-
3
验证模式:粘贴哈希和明文
工具会从哈希中提取盐和 cost,并用相同参数重新哈希明文。
-
4
读取结果
生成模式复制 60 个字符的哈希;验证模式返回绿色的匹配或红色的不匹配。
验证模式内部逻辑
给定一个存储的 hash,例如:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
验证器会:
- 解析版本(
2b)、cost(12)、盐(cost 之后的前 22 个字符)和摘要(最后 31 个字符)。 - 使用提取出的盐和 cost,对候选明文重新运行 bcrypt。
- 用恒定时间比较,将得到的摘要与原始值进行比较。
比较成功得到 true;任何差异都会得到 false。
恒定时间比较
用简单的 == 比较两个字符串,会在第一个不同的字节处立刻返回,这是一种计时侧信道,在样本足够多时可能逐位泄露哈希。生产环境的密码检查(以及这个工具)使用恒定时间比较,它始终检查每一个字节,因此判定时间不取决于前面有多少个字节匹配。
常见诊断场景
| 症状 | 可能原因 |
|---|---|
| 验证失败,但你确信密码正确 | 输入末尾有多余空白或 BOM。两者都去掉。 |
验证失败,版本为 2y |
某些库不喜欢 2y;它有效且兼容。今后改用 2b 重新哈希。 |
| 哈希太短 / 格式错误 | 这不是 bcrypt 哈希。MD5 是 32 个十六进制字符,SHA-1 是 40 个,bcrypt 是带 $ 分隔符的 60 个字符。 |
| cost 不匹配警告 | 存储的 cost 低于你的策略下限。下次成功登录时重新哈希。 |
登录时重新哈希
最佳实践:用户成功登录后,检查已存储哈希的 cost 是否低于当前策略。如果低,就用新的 cost 重新哈希密码并更新数据库。几个月内,你就能在不要求任何人修改密码的情况下,升级整个用户群的哈希。
这个工具不会做什么
- 批量验证,本工具一次只处理一个哈希。
- 破解或暴力穷举,字典攻击或彩虹表攻击有意不在支持范围内。
- 还原明文,bcrypt 是单向的;如果忘记密码,唯一的办法是重置。
常见问题
哈希和验证在服务器上计算,因此密码会通过加密连接发送到我们的服务器。它不会被存储、不会记录日志,也永远不会添加到页面链接中。
每个哈希的盐都是随机生成的。这正是它的意义所在,两个用户即使使用相同密码也会得到不同的哈希,从而让彩虹表失效。
可以,这正是验证模式的用途:粘贴你已有的哈希,再粘贴候选密码,工具会确认或否定二者是否匹配。
支持。所有现代变体都能互操作,摘要在不同版本间兼容,区别只在于标签。少数来自 2000 年代系统的旧 $2$ 哈希,可能需要一个显式支持旧格式的库。
相关工具
数字转字母密码
使用 A=1、B=2 密码(A1Z26)在数字和字母之间互相转换,适用于谜题、谜语和密室逃脱线索。
密码类型识别器
粘贴密文,识别器会给出可能的编码/密码方案:Base64、hex、二进制、摩斯、凯撒或替换、JWT 及常见哈希。
JWT 生成器
生成带有自定义头部、有效载荷声明、HMAC 或 RSA 签名方式、有效期及受众限制的已签名 JWT,用于测试。
密码短语生成器
从随机常用单词生成一个易记的密码短语,可调整单词数量、分隔符、大小写以及可选的附加数字。
密码强度检查器
在浏览器中检查密码强度:长度、字符多样性、以位为单位的熵值,以及粗略的破解时间估算。任何内容都不会被上传。
RSA密钥对生成器
生成符合PEM格式的新RSA公钥与私钥对。为 JWT 签名、SSH或TLS协议选择2048位、3072位或4096位密钥。
此工具还提供其他语言版本
- Generador de Hash bcrypt [ES]
- Trình tạo hash bcrypt [VI]
- bcrypt 해시 생성기 [KO]
- Generator Hash bcrypt [ID]
- Generator hashy bcrypt [PL]
- Générateur de hachage bcrypt [FR]
- Gerador de Hash bcrypt [PT]
- bcrypt-Hash-Generator [DE]
- مولد Hash bcrypt [AR]
- bcrypt Hashジェネレーター [JA]
- bcrypt-hashgenerator [NL]
- bcrypt-hashgenerator [SV]
- ตัวสร้าง bcrypt Hash [TH]
- bcrypt Hash Generator [EN]
- Generatore di hash bcrypt [IT]
- Генератор bcrypt-хешей [RU]
- bcrypt Hash Oluşturucu [TR]