免费工具

Bcrypt 生成器和验证器

使用 bcrypt 进行密码哈希并验证哈希与明文密码。选择您的成本因子。完全在浏览器中运行 — 没有数据被发送到任何服务器。

Bcrypt 生成器和验证器

10
4 (fastest)14 (slowest)

成本因子越高 = 安全性越高但计算速度越慢。

关于 bcrypt

Bcrypt 是一个密码哈希函数,设计为缓慢且计算密集型,使暴力破解攻击变得不切实际。与为快速设计的 SHA-256 不同,bcrypt 在每次成本因子增加时会故意减速。成本因子每增加一次就会使工作量翻倍 — 成本 11 比成本 10 慢两倍。

您的数据保留在浏览器中 — 没有数据被发送到任何服务器。

什么是 bcrypt?

Bcrypt 是由 Niels Provos 和 David Mazières 在 1999 年设计的密码哈希算法。与 SHA-256 等通用密码哈希函数不同,bcrypt 专门设计为缓慢且 CPU 密集型,使其对暴力破解和字典攻击具有抵抗力。它还会自动加入随机盐,因此相同的密码每次都会产生不同的哈希。

选择成本因子

成本因子(也称为工作因子或轮数)控制哈希的计算成本。它是以 2 为底的对数 — 成本 10 执行 2¹⁰ = 1024 次迭代,成本 11 执行 2048 次,等等。OWASP 建议最小成本为 10,而随着硬件改进,新应用程序建议成本为 12 或更高。目标是在生产环境中实现 100–300 毫秒的哈希时间。

如何使用

  1. 选择哈希选项卡,输入您的明文密码,并选择一个成本因子。
  2. 单击生成哈希 — bcrypt 哈希将显示在输出框中。
  3. 复制哈希以将其存储在数据库中。
  4. 日后验证:切换到验证选项卡,输入明文和存储的哈希,然后单击验证。

常见问题

我可以反向 bcrypt 哈希来获取原始密码吗?
不能。Bcrypt 是一个单向哈希函数 — 反向 bcrypt 哈希在计算上是不可行的。检查密码的唯一方法是对候选密码进行哈希并进行比较,这正是验证选项卡所做的。
为什么 bcrypt 对相同的输入每次产生不同的哈希?
Bcrypt 会自动为每个哈希生成一个随机的 128 位盐。盐被嵌入在哈希字符串中($2b$10$... 前缀包含成本因子和盐)。这意味着同一密码的两个哈希看起来不同,但都会正确验证。
bcrypt 的最大输入长度是多少?
Bcrypt 在 72 个字节处截断输入。如果您的明文密码长于 72 个字节(大约 72 个 ASCII 字符,多字节字符则更少),只有前 72 个字节会被哈希。对于非常长的口令,请考虑在 bcrypt 前使用 SHA-256 预哈希,或改用 Argon2。
bcrypt 仍然被推荐还是应该使用 Argon2?
Bcrypt 仍然是密码哈希的强大且广泛支持的选择,使用是安全的。Argon2(密码哈希竞赛的获胜者)是新系统的现代推荐,因为它也是内存困难的,使基于 GPU 的攻击成本更高。两者都远远优于对密码使用原始 SHA-256 或 MD5。