Argon2 密码哈希生成器

直接在浏览器中生成编码后的 Argon2 密码哈希,可配置算法、内存、迭代次数、并行度、盐和可选 secret。

配置
创建编码后的 Argon2 密码哈希,无需将密码、盐或 secret 发送到服务器。

除非你的应用会使用相同的 secret 值验证哈希,否则请留空。

参数
为将要验证密码的环境调整工作因子。

估计内存: 64 MiB

盐(Base64)
为每个密码使用唯一的随机盐。盐会编码为 Base64,并存储在最终的 Argon2 哈希字符串中。
哈希结果
当前密码和参数对应的编码后 Argon2 哈希。
准备哈希
输入密码,保留或生成盐,然后生成编码后的 Argon2 哈希。

什么是 Argon2?

Argon2 是一种密码哈希算法,设计目标是提高离线破解密码的成本。它将重复计算与可配置的内存成本结合起来,使攻击者每猜测一个密码都需要同时付出时间和内存。

为什么 Argon2id 通常是默认选择:

  • 对大多数密码存储系统而言,它比单独使用 Argon2i 或 Argon2d 更好地平衡了对侧信道攻击和 GPU 破解的抵抗能力
  • 编码后的输出会把算法、版本、内存、迭代次数、并行度、盐和哈希存入一个可移植字符串
  • 唯一的随机盐可以防止相同密码生成相同的存储哈希
  • 随着你的验证环境变快,可以提高内存和迭代设置

如何使用此工具:

  1. 输入要进行哈希处理的密码。
  2. 保留生成的盐,或创建新的随机盐。
  3. 选择 Argon2 变体,并根据将要验证哈希的系统调整内存、迭代次数、并行度和哈希长度。
  4. 生成编码后的哈希,并将完整字符串存储到你的应用数据库中。

安全提示:

  • 不要存储或记录明文密码。
  • 为每个密码使用新的随机盐。
  • 仅当你的验证器也拥有同一个 secret 时,才使用可选 secret;否则之后将无法验证该哈希。
  • 优先使用真实用户可接受的登录延迟范围内最高的内存和迭代设置。