什么是Bcrypt 哈希与校验?
Bcrypt 工具生成带盐的密码哈希并可校验口令是否与既有哈希匹配,cost 因子可在 4 到 14 之间调整,同时显示本次计算耗时以直观体现迭代成本。计算在浏览器本地完成,口令不上传。
怎么用Bcrypt 哈希与校验?
- 1输入口令并设置 cost(生产环境建议不低于 10)。
- 2点击「生成哈希」,结果形如 $2b$10$...,盐已内嵌其中。
- 3把已有哈希粘进右侧,点「校验」可确认口令是否匹配。
- 4观察耗时:cost 每加 1,耗时翻倍。
在代码里怎么实现?
一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。
Node.js
Python
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。
相关工具
全部工具Base64 编码 / 解码
Base64 Encoder & Decoder
Base64 编码与解码,支持 UTF-8 与 URL-safe
文件 Base64 转换
File to Base64
文件转 Base64 与 Data URI,文件不上传
URL 编码 / 解码
URL Encoder & Decoder
URL 编码解码,区分整串与参数两种语义
HTML 实体转义 / 反转义
HTML Entity Encoder
HTML 实体转义与反转义
Hex 与文本互转
Hex to Text Converter
文本与十六进制互转,支持多种分隔风格
Unicode 转义 / 还原
Unicode Escape Converter
Unicode 转义与还原,支持三种写法