Bcrypt 哈希与校验
用 bcrypt 哈希密码,或校验明文与哈希是否匹配
本地运行
loading…
关于此工具
用选定的成本因子对密码做 bcrypt 哈希,或校验明文与既有哈希是否匹配——两者都完全在浏览器中进行,当被测对象是密码时,这正是你想要的。哈希检查器还能把任意 bcrypt 哈希拆解为版本、成本和盐值。
bcrypt 至今仍是密码存储的可靠选择,因为它刻意慢且逐密码加盐:成本因子每加一,工作量翻一倍,成本 12 意味着底层密码初始化迭代 4096 次。耗时读数展示你选的成本要花多久,让安全与延迟的权衡变得具体。
校验是更常见的日常需求:不用启动应用代码就确认数据库里的哈希是否对应某个已知密码。两个都贴上,得到是或否。
常见问题
- 生产环境该用多大的成本因子?
- 经典指导:在登录延迟预算允许下越高越好,如今常见 10–13。以生产硬件上每次哈希 100–300ms 为目标。浏览器 JavaScript 比原生慢,这里显示的耗时是你服务器的上限。
- 为什么同一个密码每次得到不同的哈希?
- 每次哈希都会生成随机的 16 字节盐,并存储在哈希字符串内部。这是有意设计——相同密码得到不同哈希,击败预计算的彩虹表。校验时会从哈希里读回盐值,这就是比对能成立的原因。
- bcrypt 哈希的各部分是什么意思?
- $2b$12$ + 53 个字符:2b 是算法版本,12 是成本(2^12 次迭代),接下来 22 个字符是盐,最后 31 个是摘要——全部使用 bcrypt 自己的 base64 字母表。工具下方的检查器会这样拆解任意哈希。
- 现在还推荐 bcrypt 而不是 Argon2 吗?
- 新系统的首选是 Argon2id(内存硬度可抵抗 GPU 破解)。bcrypt 依然可接受且无处不在——务实建议是:不要恐慌性迁移运转良好的 bcrypt 存储,但全新设计选 Argon2id。两者都远胜 SHA-256 这类快速哈希。