Bcrypt 密码验证器
检查某个密码是否与一个 bcrypt 或 Argon2 哈希值匹配。
如何使用 Bcrypt 密码验证器
- 输入你要测试的密码。
- 将已存储的哈希值粘贴到第二个输入框中。
- 点击“检查”——你会得到明确的匹配或不匹配结果。
关于 Bcrypt 密码验证器
你无法通过再次哈希密码并比对字符串的方式来验证一个带盐的哈希值——新生成的哈希会带有一个新的随机盐值,因此永远不会匹配。验证的正确方式恰恰相反:从已存储的哈希值中读取盐值和成本参数,用这些完全相同的参数重新对密码进行哈希计算,然后比较结果。
本工具对 bcrypt($2y$…)和 Argon2($argon2i$…、$argon2id$…)都采用同样的方式,与 PHP 的 password_verify() 做法一致。当登录莫名其妙失败、你想弄清楚到底是密码错了还是应用逻辑出了问题时,这个工具会很有用。
比对过程本身是“时序安全”的,也就是说无论第一个字符是否匹配,或者完全不匹配,所需的时间都是一样的——这个细节可以防止攻击者通过逐个字符猜测的方式套出哈希内容。
常见问题
为什么不能直接哈希密码再比对?
因为 bcrypt 会给每个哈希随机加盐,所以对同一个密码哈希两次会得到不同的字符串。验证时必须重复使用原始哈希内部存储的盐值。
这里支持哪些哈希格式?
bcrypt($2y$、$2a$、$2b$)以及 Argon2($argon2i$、$argon2id$)。普通的 MD5 或 SHA 哈希不是带盐的密码哈希,会被拒绝。
结果显示不匹配,但我确定密码是对的。
检查一下粘贴哈希值时是否混入了多余的空格或换行符,并确认哈希没有被截断——bcrypt 哈希始终恰好是 60 个字符。
密码和哈希值会被存储吗?
不会。两者仅用于本次检查,用完即刻丢弃,不会有任何记录。

