Bcrypt 加密

密码哈希与校验,适用于存储用户密码

什么是 Bcrypt 加密?

Bcrypt 是一种专门为密码存储设计的哈希算法,由 Niels Provos 和 David Mazières 在 1999 年提出。与 MD5、SHA 等通用哈希算法不同,Bcrypt 的设计目标就是让暴力破解变得极其缓慢,从而有效保护用户密码。

Bcrypt 的核心特性是内置盐值(salt)和可调节的计算成本(cost factor)。盐值确保即使两个用户使用相同的密码,生成的哈希值也完全不同,防止彩虹表攻击。Cost 参数控制哈希计算的轮数(2 的 cost 次方),轮数越高计算越慢,破解难度呈指数级增长。

一个标准的 Bcrypt 哈希值格式如:$2a$10$N9qo8uLOickgx2ZMRZoMy.MrqJ3vDfBO6mVHYqr/TgpFG,其中 $2a$ 是算法版本,10 是 cost 值,后面是盐值和哈希结果。

为什么需要 Bcrypt 加密工具?

密码安全是应用开发中最关键的安全环节之一:

  • 用户注册:将用户密码通过 Bcrypt 哈希后存入数据库,即使数据库泄露也无法还原明文
  • 登录校验:验证用户输入的密码是否与存储的 Bcrypt 哈希匹配
  • 安全审计:检查线上系统存储的密码是否使用了安全的哈希算法
  • 密码策略验证:测试不同 cost 值的计算耗时,选择安全与性能的平衡点
  • 开发调试:本地开发时快速生成 Bcrypt 哈希用于测试数据

使用 IqsBot Bcrypt 加密工具,你可以快速生成密码的 Bcrypt 哈希值,也能校验明文密码与已有哈希是否匹配。

相比其他在线 Bcrypt 工具,IqsBot 的核心优势是纯浏览器端运行——你的密码不会上传到任何服务器,完全在本地处理。对于密码这种最敏感的数据,这一点至关重要。

如何使用 IqsBot Bcrypt 加密工具

基础用法

生成哈希:

  1. 输入明文密码
  2. 设置 Cost 值(推荐 10–12)
  3. 点击「生成 Bcrypt 哈希」
  4. 复制生成的哈希值

校验密码:

  1. 切换到「校验密码」标签
  2. 输入待校验的明文密码
  3. 输入已有的 Bcrypt 哈希值
  4. 点击「校验」查看匹配结果

高级功能

  • Cost 调节:支持 4–15 的 cost 值,值越高越安全但越慢
  • 自动加盐:每次生成哈希自动使用随机盐值
  • 密码校验:验证明文与哈希是否匹配,用于登录验证逻辑
  • 本地计算:密码永远不会离开浏览器

使用示例

示例1:生成密码哈希

明文密码:MyP@ssw0rd

Cost:10

生成结果:$2a$10$xK5L3nHqMGZ7bYkV1T2P5OX8rGJE4WKcSnRLnFh6tQDvN9i2m4bHe

示例2:校验密码

明文密码:MyP@ssw0rd

Bcrypt 哈希:$2a$10$xK5L3nHqMGZ7bYkV1T2P5OX8rGJE4WKcSnRLnFh6tQDvN9i2m4bHe

结果:密码匹配

常见问题

Q: Bcrypt 和 MD5/SHA 有什么区别?

A: Bcrypt 是专门为密码设计的慢哈希算法,内置盐值和可调成本因子,攻击者每秒只能尝试很少次。MD5 和 SHA 是通用哈希算法,计算速度极快(每秒可尝试数十亿次),不适合直接用于密码存储。在现代应用中,密码应始终使用 Bcrypt、Argon2 等慢哈希算法。

Q: Cost 值应该设多少?

A: 推荐设置为 10–12。Cost 值表示计算轮数为 2 的 cost 次方,值越高越安全但耗时越长。Cost 10 大约需要 100ms,Cost 12 大约需要 400ms,Cost 15 可能需要数秒。选择的原则是在用户可接受的登录等待时间内尽可能高。

Q: Bcrypt 哈希值可以直接存入数据库吗?

A: 可以,这正是 Bcrypt 的标准用法。将生成的哈希值(如 $2a$10$...)直接存入数据库的密码字段。验证时取出哈希值与用户输入的明文进行比对即可。注意字段长度至少 60 个字符。

Q: 为什么每次生成的哈希值不一样?

A: 这是正常现象。Bcrypt 每次生成哈希时都会使用随机盐值,盐值不同哈希结果就不同。但这不影响密码校验——Bcrypt 校验时会从哈希值中提取盐值,重新计算后比对。

Q: 我的密码会上传到服务器吗?

A: 绝对不会。IqsBot 的所有工具都运行在浏览器本地,你的明文密码、哈希值都不会离开你的设备。即使断网也能正常使用。

Q: Bcrypt 哈希可以反推回明文吗?

A: 不能。Bcrypt 是单向哈希算法,理论上无法从哈希值反推出明文。攻击者只能通过不断尝试不同密码来暴力破解,而 Bcrypt 的高计算成本使得这种攻击极其缓慢。