Bcrypt 哈希
生成和验证 bcrypt 密码哈希
密码安全
🔒 100% 本地运行 — 你的数据不会离开当前页面由 Evan 维护•最近更新:2026年9月29日
页面阅读模式
完整说明还包括常见问题处理、操作示例、代码片段、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。不能把它当作兼容哈希。测试数据请用当前版本重新生成;真实账户应按认证系统既有的密码重置或迁移流程处理。
继续浏览