跳转到正文

Bcrypt 验证器

检查密码是否与 bcrypt 哈希匹配。粘贴密码和以 $2a$, $2b$ 或 $2y$ 开头的哈希,工具会从字符串中读取盐值和成本,重新计算哈希,并告知是否匹配。它可帮助开发者调试登录问题、确认数据库迁移,以及测试来自 PHP、Node.js 或 Python 的哈希。成本高于 12 的哈希会被拒绝,密码绝不会回显。

重置

常见问题

bcrypt 验证是如何工作的?

工具会从哈希字符串中读取版本、成本和盐值,使用完全相同的设置对你的密码进行哈希,然后将结果与存储的哈希比较。如果两者相同,结果就是匹配,否则就是不匹配。

支持哪些哈希格式?

工具接受模块化 crypt 格式,前缀为 $2a$、$2b$ 或 $2y$,并包含两位数的成本值以及 53 个字符的盐值和哈希。这些格式适用于 PHP password_hash、Node.js bcrypt 和 bcryptjs、Python bcrypt 以及 Spring Security。

为什么我的哈希被拒绝了?

哈希必须恰好为 60 个字符,格式为 $2b$10$ 后跟 bcrypt 字符集中的 53 个字符。请检查它是否被数据库列截断,或被引号包裹。为保证服务运行快速,成本高于 12 的哈希会被拒绝。

可以试试已知示例吗?

已发布的 jBCrypt 测试向量 $2a$06$If6bvum7DFjUnE9p2uDeDu0YHzrHM6tf.iqN8.yx.jNN1ILEf7h0i 对应密码 abc。输入两者会返回匹配,输入任何其他密码都会返回不匹配。

为什么成本上限是 12?

验证哈希所需的成本与创建哈希一样,而且成本每增加一级,耗时就会翻倍。成本高于 12 可能需要数秒,因此工具会拒绝此类请求,以免服务器被占用。

验证器会显示或存储我的密码吗?

不会。响应中只有哈希和验证结果,绝不会包含密码。任何内容都不会被记录或保存。

密码长度有上限吗?

Bcrypt 只读取密码的前 72 个字节;本工具会拒绝更长的密码,而不是将其截断。如果你的系统在创建哈希时截断了较长的密码,请只输入前 72 个字节。

$2a$、$2b$ 和 $2y$ 有什么区别?

它们标记的是针对旧版实现漏洞的修复:$2y$ 来自 PHP 的 crypt_blowfish 修复,$2b$ 则来自 OpenBSD 对长密码的修复。对于有效且不超过 72 字节的密码,它们计算出的哈希相同,因此本工具支持验证这三种格式。

可以在这里验证其他算法的哈希吗?

不可以。本工具只能检查 bcrypt 哈希。对于以 $argon2 开头的字符串,请使用 Argon2 Verifier。

为什么我的密码生成的新 bcrypt 哈希与存储的哈希不相同?

每个 bcrypt 哈希都会使用新的随机盐值,因此同一密码的两个哈希字符串总是不同。这就是为什么验证时会使用存储的盐值重新计算,而不是比较两个哈希。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。