无需登录 数据私有 本地保存

Bcrypt 密码哈希工具 - 自适应成本因子加盐

10
0
0
0

Bcrypt 密码哈希工具

自适应成本因子 · 自动加盐 · 安全哈希生成与验证

10
🟢 推荐强度
等待生成...
粘贴 bcrypt 哈希值以查看其内部结构
🔐 什么是 Bcrypt?它为什么安全?
Bcrypt 是一种基于 Blowfish 加密算法的密码哈希函数,专为密码存储设计。它内置盐值(Salt)机制,每次哈希自动生成随机盐,即使相同密码也会产生不同哈希值,有效抵御彩虹表攻击。其成本因子(Cost Factor)可随时间推移提高,对抗硬件性能增长带来的暴力破解风险。
⚡ Bcrypt 和 MD5 / SHA 系列有什么区别?
MD5 和 SHA 系列是通用哈希算法,设计目标是快速计算,但这恰恰使它们不适合密码存储——攻击者可以每秒尝试数十亿次。Bcrypt 是慢哈希算法,通过成本因子故意降低计算速度(如每哈希 500ms),使暴力破解变得极其昂贵且不切实际。此外 Bcrypt 内置盐值,而 MD5/SHA 需手动加盐。
🎯 什么是成本因子(Cost Factor)?如何选择?
成本因子是 Bcrypt 的核心参数,控制哈希计算的迭代次数(2^cost 次)。每增加 1,计算时间翻倍。推荐:
• Cost 8:约 20-40ms,适合低频内部系统
Cost 10:约 80-200ms,推荐默认值
• Cost 12:约 300-800ms,适合高安全场景
• Cost 14+:1-3秒+,极高安全需求
建议使用本工具的「自适应测试」功能,根据您的设备自动推荐最佳值。
🧂 什么是盐值(Salt)?Bcrypt 如何管理盐值?
盐值是一个随机字符串,在哈希前与密码组合,确保相同密码产生不同哈希。Bcrypt 自动生成 16 字节(128 位)的随机盐,并将盐值嵌入到最终的哈希字符串中($2a$10$盐值22字符哈希31字符)。验证时自动提取盐值,无需单独存储。这大大简化了密码管理。
🔍 $2a$、$2b$、$2x$、$2y$ 版本有什么区别?
这些是 Bcrypt 的版本标识符:
$2a$:原始版本,1999年发布
$2b$:修复了 PHP 实现的空字符处理 bug(2014年)
$2x$:PHP 的向后兼容版本
$2y$:PHP 5.3.7+ 引入的修复版本
对于新项目,推荐使用 $2b$$2y$。本工具使用 bcryptjs 库生成的是 $2a$ 格式,安全性等同。
🔄 Bcrypt 哈希可以解密吗?自适应成本因子如何工作?
Bcrypt 是单向哈希,不可解密。验证时,系统用相同成本因子和盐值对输入的密码重新哈希,比较结果是否一致。关于自适应成本因子:本工具会在您的设备上运行基准测试,测量不同 Cost 下的实际哈希时间,找到最接近目标时间(约 500ms)的成本因子。这确保在不同性能的设备上都能获得一致的安全体验。