bcrypt 加密:在线生成与校验密码哈希
这款 bcrypt 工具能把任意密码转换成安全的 bcrypt 哈希,也能校验某个密码是否与已有哈希匹配——全部在你的浏览器中完成。它专为需要给数据库填充种子数据、测试登录流程或核对已存储 bcrypt 哈希的开发者打造,无需为此专门写代码。
bcrypt 是一种刻意设计得很慢的密码哈希算法,并内置盐值(salt),这让它的哈希比 MD5、SHA-256 等快速函数更难被暴力破解。从 4 到 31 选一个成本因子,在生成与校验之间切换,剩下的交给 bcryptjs 库处理。
如何使用 bcrypt 加密工具
选择“生成”或“校验”
用生成标签从密码创建新的哈希,或用校验标签检查某个密码是否与已有 bcrypt 哈希匹配。
输入内容
输入要加密的密码。在校验模式下,还需粘贴要核对的 bcrypt 哈希。点击示例数据可快速填入演示值。
选择成本因子
为新哈希设置成本因子(轮数)。默认值 12 适合大多数生产环境,旁边的彩色徽章会显示你所选数值对应的安全等级。
生成或校验
点击生成哈希得到哈希,一键即可复制。在校验模式下,点击校验密码查看绿色的匹配或红色的不匹配结果。
bcrypt 哈希结构解析
本工具生成的每个哈希都采用现代的 $2b$ 版本,把算法、成本、盐值和摘要打包进同一个字符串:
$2b$12$WApznUPhDubN0oeveSFPpOLo0dVMFJ.3CC9TmGkMxLFvnEGbgm4jq
$2b$ — 版本
算法标识符。2b 是当前的标准;本工具生成 2b 哈希,并可校验 2a、2b 和 2y。
12 — 成本因子
轮数,其中迭代次数 = 2^成本。成本为 12 意味着每个哈希迭代 2^12 = 4,096 次。
盐值 — 随后的 22 个字符
为每个哈希生成的唯一随机盐值,经 Base64 编码,用于挫败预先计算好的彩虹表。
哈希 — 末尾的 31 个字符
你的密码与盐值在所选成本下结合后得到的 Base64 编码摘要。
功能特性
生成与校验两种模式
从密码创建全新的 bcrypt 哈希,或切换标签检查某个密码是否与已有哈希匹配。
成本因子可调
在 4 到 31 轮之间任选,在哈希强度与生成速度之间取得平衡。
安全等级徽章
彩色徽章一眼把每个成本标注为低、中、推荐、高或极高。
哈希详情解析
每个结果都会显示算法版本与成本因子,让你一眼读懂哈希。
生成耗时
每次生成与校验都会显示精确耗时,让你掂量更高轮数的代价。
多版本校验
校验模式接受 $2a$、$2b$ 和 $2y$ 哈希,并会标出无效格式。
一键复制
一键把生成的哈希复制到剪贴板,随时粘贴进你的代码或数据库。
示例数据与清空
载入演示值即可立即测试,随后随时清空字段重新开始。
100% 浏览器本地
一切都使用 bcryptjs 库在你的浏览器中运行——任何密码都不会离开你的设备。
如何选择合适的成本因子
轮数越高,哈希越强,但生成越慢。可把下面这些范围当作起点,再根据你的硬件调整:
| 轮数 | 等级 | 适用场景 |
|---|---|---|
| 4–9 | 低 | 仅限开发与测试 |
| 10–11 | 中 | 低安全性应用 |
| 12–13 | 推荐 | 生产环境应用 |
| 14–17 | 高 | 高安全性系统 |
| 18–31 | 极高 | 最高安全级别(生成缓慢) |
常见问题
如何生成 bcrypt 哈希?
在生成标签下,输入你的密码,选一个成本因子(12 是不错的默认值),然后点击生成哈希。bcrypt 哈希会即时出现,一键即可复制。
bcrypt 哈希可以解密或逆向还原吗?
不能。bcrypt 是单向哈希算法,而非加密,因此哈希无法被还原成原始密码。确认密码的唯一办法是再次对它做哈希并进行比较——这正是校验标签所做的事。
如何校验密码与某个 bcrypt 哈希是否匹配?
切换到校验标签,输入密码,粘贴 bcrypt 哈希,然后点击校验密码。如果该密码能生成那个哈希,结果显示绿色的匹配;否则显示红色的不匹配。
为什么同一个密码每次生成的哈希都不一样?
bcrypt 会在每个哈希中嵌入唯一的随机盐值,所以即使密码完全相同,也会生成完全不同的字符串。这是有意为之的设计——能挫败预先计算好的彩虹表攻击。校验依然有效,因为盐值就存储在哈希本身之中。
什么是 salt rounds(盐值轮数)和成本因子?
成本因子(也叫轮数)控制 bcrypt 的工作量:迭代次数等于 2 的成本次方。数值越高,哈希会呈指数级变慢,因而更难被暴力破解。对大多数生产环境应用来说,12 轮在安全与性能之间取得了很好的平衡。
$2a$、$2b$ 和 $2y$ 之间有什么区别?
$2a$ 是最初的规范,$2b$ 是修复了长密码处理问题的更新版本,$2y$ 则是 PHP 的标识符。三者互相兼容——本工具生成 $2b$ 哈希,并能校验全部三种格式。
密码长度有上限吗?
bcrypt 最多处理 72 字节的输入,超出部分会被静默截断。这通常不是问题,但如果你需要对很长的口令短语做哈希,可先用 SHA-256 对其做预哈希,再应用 bcrypt。
使用本工具时我的密码安全吗?
安全。所有加密与校验都完全使用 bcryptjs 库在你的浏览器中进行——你的密码绝不会发送到任何服务器。你可以在断网状态下使用本工具来验证这一点。
还没有评论,快来发表第一条!