在线Bcrypt密码哈希生成器 — 哈希与校验工具
在线生成 bcrypt 密码哈希,支持自定义成本因子(轮数4-16)。哈希与校验一体化,密码强度评估。浏览器本地处理,密码不上传服务器。
功能特性
- ✓在浏览器中即时生成 bcrypt 密码哈希
- ✓可调节成本因子(轮数 4–16),随硬件升级增强安全性
- ✓内置密码验证功能,比对已有 bcrypt 哈希
- ✓行业标准盐值生成——每次哈希自动生成唯一盐值
- ✓一键复制哈希值到剪贴板
- ✓100% 浏览器端处理,密码不上传服务器
- ✓密码强度评估 — 配合哈希结果显示弱/中/良/强等级视觉指示
- ✓成本因子耗时估算 — 显示选定轮数下的预计计算时间
- ✓哈希结构分解 — 分别展示版本号、成本因子、盐值和哈希体,便于学习理解
- ✓72 字节截断提醒 — 输入超过 bcrypt 限制时主动警告
使用方法
- 1选择模式:Hash(生成新哈希)或 Verify(验证密码与哈希是否匹配)。
- 2Hash 模式下,输入密码并调节成本因子滑块。
- 3点击生成按钮,bcrypt 哈希即时显示,包含盐值和成本因子。
- 4点击复制图标复制完整哈希字符串(例如 $2b$10$...)。
- 5Verify 模式下,同时输入密码和 bcrypt 哈希,点击验证查看是否匹配。
- 6如何选择成本因子:大多数应用从 10 开始。敏感数据用 12。仅当能容忍 1 秒以上哈希时间时才使用 14+。
- 7如何验证数据库中的密码哈希:切换到 Verify 模式,粘贴存储的 bcrypt 哈希,输入用户密码,点击验证。工具自动提取盐值和成本。
- 8如何解读 bcrypt 哈希:$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy — 版本 $2b$,成本因子 10,22 字符盐值,31 字符哈希体。
- 9如何处理 72 字节限制:bcrypt 只处理密码的前 72 字节。长密码可先用 SHA-256 预哈希后再使用 bcrypt。
- 10如何测试密码强度:输入密码并观察强度指示器。强密码配合成本因子 10+ 可提供稳健的暴力破解防护。
常见问题
什么是 bcrypt,为什么用于密码存储?
∨
Bcrypt 是 Niels Provos 和 David Mazières 于 1999 年设计的密码哈希函数。它使用盐值抵御彩虹表攻击,并具有可调节的成本因子,使计算刻意变慢,即使硬件升级也难以暴力破解。它是密码存储的行业标准。
成本因子(轮数)是什么意思?
∨
成本因子控制哈希的计算复杂度。每增加 1,计算时间翻倍。默认值 10 表示 2^10 = 1024 轮。大多数应用推荐 10–12。更高值(14+)安全性更强,但在慢速设备上可能导致明显延迟。
为什么 bcrypt 比 SHA-256 更适合密码存储?
∨
SHA-256 被设计为快速,这使得它容易受到暴力破解和 GPU 加速攻击。Bcrypt 刻意缓慢,且每个密码使用唯一盐值,防止彩虹表攻击。即使成本因子仅为 10,bcrypt 也比单次 SHA-256 慢数百倍。
可以验证数据库中已有的密码哈希吗?
∨
可以。使用 Verify 模式:粘贴数据库中的 bcrypt 哈希和待验证的密码。工具从哈希中提取盐值和成本因子重新计算以验证是否匹配。所有数据均在浏览器本地处理。
Bcrypt 哈希长什么样?
∨
Bcrypt 哈希格式为:$2b$<成本因子>$<22字符盐值><31字符哈希值>。例如:$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy。其中包含版本号($2b$)、成本因子(10)、22 字符 base64 盐值和 31 字符 base64 哈希。
Bcrypt 哈希能被破解吗?
∨
Bcrypt 通过刻意减慢计算速度来抵抗破解。但即使使用 bcrypt,弱密码仍可通过字典攻击被破解。始终使用强随机密码并配合适当的成本因子(10+)。
$2a$、$2b$ 和 $2y$ 版本有什么区别?
∨
$2a$ 是原始版本。$2b$(当前标准)修复了 $2a$ 中与非 ASCII 字符处理相关的错误。$2y$ 是 PHP 特定变体。大多数现代系统使用 $2b$,本工具生成 $2b$ 哈希。
Bcrypt 的盐值如何工作?
∨
Bcrypt 自动为每个哈希生成密码学随机的 128 位(22 字符 base64)盐值。该盐值嵌入在哈希输出字符串中,无需单独存储。相同密码会产生不同的哈希值。
Bcrypt 能用于 API 认证吗?
∨
可以,但 bcrypt 比 HMAC 方法慢。对速度敏感的 API 认证可考虑使用 HMAC-SHA256。将 bcrypt 保留用于数据库密码存储和用户认证流程。
Bcrypt 抵抗 GPU 攻击吗?
∨
Bcrypt 的设计天然抵抗 GPU 加速,因为它需要大量内存且初始化阶段复杂。与 SHA-256(GPU 每秒可计算数百万次)不同,bcrypt 的结构使其在 GPU 上并不比 CPU 快多少——这是一大安全优势。
超过 72 字节的密码会怎样?
∨
Bcrypt 会静默截断至前 72 字节,超出部分被忽略。解决方法是先用 SHA-256 对密码预哈希再使用 bcrypt,或使用 Argon2id 等没有此限制的现代算法。
新项目应该用 bcrypt 还是 Argon2id?
∨
两者都是优秀选择。Argon2id 是密码哈希竞赛(2015)的胜出者,被认为是现代标准。Bcrypt 支持广泛,在旧系统中更容易找到。新项目推荐 Argon2id,最大兼容性选用经过验证的 bcrypt。