密码哈希生成器
使用Bcrypt、Scrypt、Argon2算法生成和验证安全的密码哈希
Bcrypt 选项
10
值越高越安全,但计算时间越长。推荐值:10-12
结果
耗时:
-
关于密码哈希
密码哈希是一种单向加密技术,将用户密码转换为固定长度的字符串。与普通哈希不同,密码哈希算法专门设计用于抵抗暴力破解和彩虹表攻击。
重要提示:永远不要存储明文密码!始终使用密码哈希算法(如Bcrypt、Scrypt或Argon2)来存储用户密码。这些算法内置了盐值生成,可以有效防止彩虹表攻击。
算法对比
| 算法 | 年份 | 内存占用 | GPU抗性 | 推荐 |
|---|---|---|---|---|
| Bcrypt | 1999 | 4KB | 中等 | 是 |
| Scrypt | 2009 | 可配置 | 高 | 是 |
| Argon2 | 2015 | 可配置 | 非常高 | 最佳选择 |
关于 Bcrypt
Bcrypt是基于Blowfish密码的自适应密码哈希函数,由Niels Provos和David Mazières于1999年设计。它包含一个成本因子,可以根据硬件性能的提升而增加,保持破解难度。Bcrypt最大支持72字节的密码,生成60字符的哈希值,格式为$2a$、$2b$或$2y$前缀。
关于 Scrypt
Scrypt是由Colin Percival于2009年设计的密码衍生函数,专门设计为内存硬化算法,需要大量内存才能计算,有效抵抗ASIC和GPU并行攻击。Scrypt广泛用于加密货币(如Litecoin)和密码存储。其参数N、r、p可以调整CPU和内存成本。
关于 Argon2
Argon2是2015年密码哈希竞赛的冠军,被认为是目前最安全的密码哈希算法。它有三个变体:Argon2d(抗GPU攻击)、Argon2i(抗侧信道攻击)和Argon2id(两者结合,推荐用于密码哈希)。Argon2可以配置内存、迭代次数和并行度参数。
密码存储最佳实践
- 使用Argon2id作为首选,如果不可用则使用Bcrypt
- 永远不要存储明文密码或使用MD5/SHA进行密码哈希
- 使用足够高的成本因子(Bcrypt ≥10,Argon2 memory ≥64MB)
- 定期更新哈希算法和参数以跟上硬件发展
- 实施密码策略,要求用户使用强密码