加载中...

bcrypt 是 1999 年由 Niels Provos 和 David Mazieres 基于 Blowfish 分组密码设计的口令哈希函数,最初用于 OpenBSD 的口令存储。
bcrypt 利用 Blowfish 昂贵的密钥扩展过程(EksBlowfish),将口令和 128 位盐值反复混入密钥调度,迭代次数由"代价因子"(cost factor)控制,每加 1 计算量翻倍。随着硬件进步,只需提高代价因子即可维持破解难度,这种"自适应"设计是其长寿的关键。
输出为固定格式字符串,内嵌算法版本、代价因子和盐值,便于存储与校验;口令长度实际上限为 72 字节,超出部分会被截断,这是使用中最常见的坑。
bcrypt 经过二十多年实战检验,仍被大量 Web 框架默认采用。它不具备内存硬性质,对 GPU 破解的抵抗力弱于 scrypt 和 Argon2,新系统一般推荐优先选择 Argon2id。

登录 后参与讨论
暂无讨论,来发表第一条评论吧