PBKDF2密钥派生/验证
在线PBKDF2密钥派生/验证工具,支持SHA-1/SHA-256/SHA-384/SHA-512、迭代次数与密钥长度配置,可生成随机盐值并校验派生结果。
OWASP 2023 建议 PBKDF2-SHA256 至少 310,000 次迭代。迭代越高,抗暴力破解能力越强。
PBKDF2 文档
PBKDF2(Password-Based Key Derivation Function 2)是 RFC 8018 标准定义的密码派生算法。它通过大量迭代提高攻击成本,常用于口令到密钥转换。
PBKDF2 被广泛用于密码存储、文件加密、密钥生成和协议协商等场景,特别适用于需要合规(NIST/FIPS)支持的系统。
工作原理
PBKDF2 以密码、盐值、迭代次数和输出长度为输入,重复执行 HMAC 运算并拼接输出块。
- 输入密码、盐值、迭代次数和目标密钥长度
- 以密码为 HMAC 密钥、盐值加计数器为消息进行计算
- 对每个块重复迭代并异或累积中间结果
- 拼接块得到最终派生密钥
OWASP 迭代建议(2023)
不同哈希算法推荐不同迭代次数,生产中应结合性能预算与安全目标定期提升参数。
| 哈希算法 | 最低迭代 | 推荐值 |
|---|---|---|
| PBKDF2-SHA256 | 310,000 | 600,000+ |
| PBKDF2-SHA384 | 210,000 | 500,000+ |
| PBKDF2-SHA512 | 120,000 | 210,000+ |
| PBKDF2-SHA1 | 1,300,000 | 不推荐 |
常见使用场景
- 从用户口令派生 AES/ChaCha20 密钥
- 登录系统中的密码派生与校验
- 密码管理器中的主口令密钥生成
- 磁盘加密与安全容器密钥构造
PBKDF2、Bcrypt、Argon2 对比
- PBKDF2 标准化程度高,生态与合规支持广
- Bcrypt 在旧系统中常见,参数模型相对简单
- Argon2 具备更强内存硬化能力,适合新系统
安全实践建议
- 盐值建议不少于 16 字节,且每条记录唯一
- 盐值可公开存储,但必须与口令分离管理
- 根据硬件能力定期提升迭代次数
- 新系统优先考虑 Argon2id,合规场景可继续使用 PBKDF2
参考资料
- RFC 8018 (PKCS #5 v2.1)
- OWASP Password Storage Cheat Sheet
- NIST SP 800-132