Bc

Bcrypt 哈希

生成和验证 bcrypt 密码哈希

密码安全
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月29日
选项模式
输入

先输入密码,直接生成 bcrypt hash 或验证匹配;成本参数和场景说明可在高级模式查看。

10
每增加 1,工作量约翻倍。浏览器测试耗时不能代替服务器基准测试;低成本仅用于测试。
🔒 浏览器内 bcryptjs 计算 · 不保存密码草稿
输出
结果将在这里显示
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

使用 bcryptjs 在浏览器内生成标准 bcrypt 哈希,或验证密码与 $2a$、$2b$、$2y$ 哈希是否匹配。本工具接受 4–14 的成本参数、最多 72 个 UTF-8 字节的密码;超限会报错,不会静默截断。密码和哈希不保存为草稿。

生产可用片段

验证来自 Apache 的 bcrypt 测试样例

text

Password: MySecret123!
Hash: $2y$04$BLjjKhVx2E5i/Ij8NnZa6ex2sz./wIRexhrAm1SWOAuaiHpuk8SKq
Verify: match
Password: WrongSecret123!
Verify: mismatch
Cost 4 is only a fast test fixture.

常见问题

bcrypt 是加密吗?

不是。bcrypt 是带随机盐、计算成本可调的密码哈希。验证使用已有哈希中的盐重新计算,没有解密操作;弱密码仍可能被猜中。

能验证哪些哈希?

接受完整的 60 字符 $2a$、$2b$、$2y$ bcrypt 哈希,成本参数限 4–14。密码不同会显示不匹配,格式错误或成本超限会报错。这是本浏览器工具的限制,不是 bcrypt 格式的上限。

为什么同一密码每次结果不同?

每次生成会使用新的随机盐。请使用验证模式比对密码与已有哈希;直接比较两次新生成的哈希字符串不能判断密码是否相同。

72 字节等于 72 个字符吗?

不等于。限制按 UTF-8 字节计算:ASCII 通常占 1 字节,常用汉字占 3 字节,许多 emoji 占 4 字节。生成和验证都会拒绝超过 72 字节的输入。

生产环境如何选择成本参数?

参数每增加 1,工作量约翻倍。应在真实认证服务硬件上做基准测试并遵循密码策略;浏览器计时不能给出普遍适用的安全值。调试时使用虚构测试密码。

旧版页面生成的哈希怎么办?

旧实现将 PBKDF2 结果拼成类似 bcrypt 的字符串,并非标准 bcrypt。不能把它当作兼容哈希。测试数据请用当前版本重新生成;真实账户应按认证系统既有的密码重置或迁移流程处理。

继续浏览