为什么 Web 系统普遍采用 Bcrypt 存储密码?
普通哈希算法(如 MD5、SHA-1、SHA-256)是为高速吞吐设计的,黑客使用消费级 GPU 每秒可暴力破解数亿次。而 Bcrypt 基于 Blowfish 密码算法,内置自适应“工作因子”(Cost / Rounds)。每增加一轮,破解计算耗时呈指数倍增长,能有效抵御彩虹表查表与暴力破解攻击。
Bcrypt 60 字符结构解析
形如 $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy 的标准 Bcrypt 串可拆解为四段:
$2a$:算法版本标识符(现代也常见 $2b$)。10$:Cost 难度因子。表示执行 2¹⁰ = 1024 轮加密循环。N9qo8uLOickgx2ZMRZoMye:前 22 个字符为由安全随机数生成的专属盐值 (Salt)。IjZAgcfl7p92ldGxad68LJZdL17lhWy:后 31 个字符为加密生成的校验和。