Bcrypt 哈希生成器
生成一个带正确盐值的 bcrypt 哈希,用于存储密码。
如何使用 Bcrypt 哈希生成器
- 输入你要哈希的密码。
- 选择一个成本因子——10 到 12 适合大多数网站。
- 点击“生成”,然后把哈希值复制到你的数据库中。
关于 Bcrypt 哈希生成器
bcrypt 才是保存密码时真正应该存储的东西。与专门追求速度的 MD5 或 SHA-256 不同,bcrypt 被刻意设计得很慢,而且你可以通过成本因子精确控制它有多慢。每提高一级,计算量就翻一倍,因此成本因子 12 所需的时间大约是成本因子 10 的四倍。对用户登录一次来说,这点差异几乎无关紧要,但它却能让暴力破解一个被盗数据库的成本变得极其高昂。
bcrypt 还会自动为每个哈希加盐。这就是为什么对同一个密码点击两次“生成”会得到两个不同的哈希值——而且两个都是正确的。随机盐值本身就存储在哈希字符串内部,正是这一点阻止了攻击者预先计算彩虹表。之后要验证密码时,你永远不应该重新哈希再进行字符串比对,而应该使用验证器——它会从已存储的哈希中读取盐值。我们的 bcrypt 验证器正是这么做的。
输出格式为 $2y$10$…——$2y$标记这是 bcrypt,紧接着是成本因子,然后盐值和哈希值合并写在一个 60 字符的字符串中。这与 PHP 的 password_hash()、Python 的 bcrypt 库以及 Node 的 bcryptjs 生成的格式完全一致,因此这里生成的哈希可以在所有这些环境中直接使用。
常见问题
为什么同一个密码每次生成的哈希值都不一样?
因为 bcrypt 会给每个哈希加上一个随机盐值。这是刻意设计的,也正是 bcrypt 安全的原因所在。请使用验证器而不是字符串比对来检验密码。
我应该使用多大的成本因子?
目标是让每次哈希在你自己的硬件上耗时约 250 毫秒。在典型的共享主机环境中,这大约对应 10 到 12。数值越高越安全,但也会拖慢每一次登录。
密码长度有限制吗?
有——bcrypt 只读取前 72 个字节,超出部分会被静默忽略。本工具会提醒你这一点,而不是悄悄截断。如果你需要更长的密码,请使用 Argon2。
应该选 bcrypt 还是 Argon2?
Argon2id 是目前的推荐方案,对抗 GPU 破解的能力更强。bcrypt 依然是一个可靠且经过充分验证的选择,几乎在所有环境中都能得到支持。
我的密码会被存储吗?
不会。它会被立即哈希并丢弃——从不写入磁盘,也从不记录。对于真正用于生产环境的密码,在你自己的服务器上生成仍然是最安全的做法。

