数据安全提示: 所有计算均在您的浏览器本地完成,密码和哈希值不会上传到服务器。

Bcrypt 哈希计算器

基于 bcryptjs 2.4.3
操作模式:
当前:密码哈希生成

成本因子 (Cost Factor)

10
快速 (4) 安全 (15)
约 100ms (推荐)

密码

长度: 20 强度: 很强

Bcrypt 哈希结果

$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
示例密码的 Bcrypt 哈希值 (成本因子:10) 长度: 60

Bcrypt 哈希结构

格式: $2b$[成本]$[22盐值][31哈希] 60字符

Bcrypt 算法原理

Bcrypt 基于 Blowfish 加密算法,通过引入成本因子 (cost factor) 使哈希计算变得“故意缓慢”,从而抵抗暴力破解和硬件加速攻击。

1. 盐值生成

自动生成 128 位随机盐值(22 字符 Base64),确保相同密码输出不同哈希。

2. 成本因子

迭代次数为 2^cost,cost 通常为 10~12,随硬件进步可调。

3. EksBlowfish

使用密码和盐值初始化 Blowfish 密钥调度表,重复扩展密钥。

4. 输出格式

$2b$[cost]$[22盐值][31哈希],共 60 字符。

安全特性

内置盐值

自动加盐,防御彩虹表。

自适应成本

成本因子可随硬件升级而增加。

内存密集型

约 4KB 内存需求,抵抗 GPU/ASIC 加速。

抗长度扩展

设计上避免长度扩展攻击。

使用指南

  • 成本因子选择:Web 应用推荐 10~12,高安全场景 12~14,开发测试可用 4~8。
  • 密码长度:Bcrypt 最多处理 72 字符,超长部分自动截断。
  • 存储空间:哈希值固定 60 字符,数据库字段建议 VARCHAR(60)。
  • 异步计算:生产环境务必使用异步 API 避免阻塞事件循环。
  • 定期升级成本:随着硬件进步,逐步提高成本因子并重新哈希密码。

快速提示

  • 成本因子每增加1,计算时间翻倍
  • 存储时保留完整哈希,无需分离盐值
  • 成本因子10约耗时100ms(普通CPU)
  • 点击结果可直接复制哈希

技术信息

算法标准:RFC 2898 / bcrypt
版本标识:$2b$ (主流)
输出长度:60 字符
最大密码:72 字节

需要其他安全工具?

免费为您开发定制化工具

代码示例 (Node.js)

// 安装: npm install bcryptjs
const bcrypt = require('bcryptjs');
const saltRounds = 12;

// 生成哈希
async function hashPassword(password) {
    const hash = await bcrypt.hash(password, saltRounds);
    return hash;
}

// 验证密码
async function verifyPassword(password, hash) {
    return await bcrypt.compare(password, hash);
}