Argon2 实验场
用你自己的内存、迭代次数、并行度、盐和密钥计算 Argon2id、Argon2i 或 Argon2d 哈希。输出 PHC 字符串并支持验证。
19 MiB 内存
带密钥的哈希(Argon2 的 K 输入)。它不会保存在编码字符串中,因此验证时需要再次提供。
Argon2(RFC 9106)是密码哈希竞赛的冠军。推荐使用 Argon2id 变体;OWASP 最低要求:m=19 MiB, t=2, p=1。在你的浏览器中通过 hash-wasm(WebAssembly)计算。
用哈希验证密码
完全在浏览器中运行,您的数据不会被上传。
什么是 Argon2id 实验场?
用 Argon2(RFC 9106,密码哈希竞赛的获胜者)对密码进行哈希,并控制每个参数:变体、迭代次数、内存、并行度、哈希长度、盐的编码以及可选的密钥。结果以原始十六进制和标准 PHC 字符串两种形式显示。
如何使用 Argon2id 实验场
- 输入密码并选择变体(推荐 Argon2id)。
- 设置迭代次数 (t)、内存 (KiB)、并行度 (p) 和哈希长度。
- 以文本、十六进制或 Base64 输入盐值,或留空以使用随机的 16 字节盐。
- 点击计算哈希;复制编码字符串或原始十六进制,并在下方面板中验证。
示例
Password password, salt somesalt (text), Argon2id, t=2, m=65536, p=1, 32 bytes
$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPc
与参考的 argon2 命令行工具和 argon2-cffi 结果相同。
何时使用 Argon2id 实验场
适用于调整参数、重现参考向量,或调试来自 libsodium、argon2-cffi 或 PHP 的 password_hash 等库的 Argon2 哈希。较高的内存设置在手机上可能很慢或失败。
Argon2id 实验场 的工作原理
Argon2 用由 BLAKE2b 派生的数据块填充 m KiB 内存,然后对该内存进行 t 轮遍历:Argon2d 使用依赖数据的寻址,Argon2i 使用与数据无关的寻址,Argon2id 则是混合方式。输出被编码为 $argon2id$v=19$m=…,t=…,p=…$<salt>$<hash>,使用不带填充的 Base64。计算在你的浏览器中使用 hash-wasm(WebAssembly)完成;可选的密钥是带密钥哈希的输入 K,不包含在字符串里。
常见用例
- 为服务器选择内存和迭代次数设置
- 重现 Argon2 测试向量
- 验证由其他库生成的 PHC 字符串
- 讲解 Argon2 参数如何影响成本
常见问题
OWASP 推荐哪些参数?
Argon2id,至少 m=19 MiB、t=2、p=1,或等效的权衡,例如 m=46 MiB、t=1、p=1。
Argon2id、Argon2i 还是 Argon2d?
密码哈希请用 Argon2id。Argon2d 易受侧信道攻击,Argon2i 则对 GPU 的权衡攻击较弱。
并行度在这里会让速度更快吗?
不会。浏览器按顺序计算各个通道,但该参数仍会改变结果,所以必须与你的服务器所用的值一致。