Bcrypt 哈希与校验

Bcrypt 哈希生成与口令校验

浏览器内运算Bcrypt Hash Generator工具型03编码与加密

什么是Bcrypt 哈希与校验

Bcrypt 工具生成带盐的密码哈希并可校验口令是否与既有哈希匹配,cost 因子可在 4 到 14 之间调整,同时显示本次计算耗时以直观体现迭代成本。计算在浏览器本地完成,口令不上传。

怎么用Bcrypt 哈希与校验

  1. 1输入口令并设置 cost(生产环境建议不低于 10)。
  2. 2点击「生成哈希」,结果形如 $2b$10$...,盐已内嵌其中。
  3. 3把已有哈希粘进右侧,点「校验」可确认口令是否匹配。
  4. 4观察耗时:cost 每加 1,耗时翻倍。

在代码里怎么实现?

一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。

import bcrypt from 'bcryptjs';

const hash = await bcrypt.hash(password, 12);
const matched = await bcrypt.compare(password, hash);

常见问题

为什么同一个口令每次生成的哈希都不同?+

因为每次会生成新的随机盐,而盐被编码进了哈希字符串本身。这样即使两个用户设了相同密码,数据库里的记录也不同,攻击者无法通过比对发现「这两人密码一样」,彩虹表也彻底失效。

cost 应该设多大?+

取决于你的服务器性能与可接受的登录延迟。常见做法是调到单次计算约 100~250 毫秒,目前多数服务器上对应 cost 11~13。注意 bcrypt 会随硬件变快而变弱,应定期上调并在用户登录时透明升级。

bcrypt 有长度限制吗?+

有。bcrypt 只处理前 72 字节,超出部分被忽略。如果允许用户使用很长的口令(或使用密码管理器生成的长串),建议改用 Argon2id,或先对口令做一次 SHA-256 再交给 bcrypt。

相关工具

全部工具