UTILS.
100% 浏览器内运行
🛡️

Argon2 密码哈希生成器与验证器

以可配置的内存、迭代和并行度计算 Argon2id/i/d 密码哈希,或对照 PHC 编码的哈希验证密码。客户端运行。

密码 100% 在你的浏览器中哈希——不上传任何内容。

— 输出将显示在这里 —

关于此工具

Argon2 密码哈希生成器与验证器完全在你的浏览器中计算和检验 Argon2 哈希。Argon2 赢得了 2015 年密码哈希竞赛,并在 RFC 9106 中标准化;与 bcrypt 不同,它是内存困难的,意味着其成本由 RAM 使用主导,从而挫败 GPU 和 ASIC 破解设备。生成模式从 crypto.getRandomValues 抽取 16 个随机盐字节,并以你的参数运行所选变体:t 迭代(时间成本)、m 内存(KiB)、p 并行度(通道),以及输出哈希长度(字节)。

提供三种变体。Argon2id(默认且 RFC 推荐的选择)是一种混合方案,抵御旁路和时间-内存权衡两类攻击;Argon2i 针对旁路泄漏优化;Argon2d 最大化抵抗 GPU 破解但不具旁路安全性。结果是形如 $argon2id$v=19$m=65536,t=3,p=1$<base64 salt>$<base64 hash> 的自描述 PHC 字符串,因此验证所需的每个参数都随哈希传递。默认值(t=3,m=65536 KiB = 64 MiB,p=1)遵循 RFC 9106 的第二个推荐配置。

由于工作作为无 eval 的 WebAssembly 版本在浏览器的严格安全策略下运行,内存在页内分配:很高的 m 值占用大量 RAM,在手机上可能较慢,因此工具在超过 256 MiB 时警告。验证模式从编码哈希中解析变体、版本、m/t/p、盐和摘要,用候选密码重新计算,并报告匹配或不匹配。密码 100% 在你的浏览器中哈希,不上传任何内容。

常见问题

我应该使用哪种 Argon2 变体?
Argon2id 是默认值,也是 RFC 9106 对密码哈希的推荐——它融合了 Argon2i 的旁路抗性与 Argon2d 的 GPU 破解抗性。仅当你确实需要数据无关的内存访问时才用 Argon2i,仅在无旁路风险的场景中才用 Argon2d。
内存、迭代和并行度设置有什么作用?
内存(m,以 KiB 计)是哈希填充的 RAM——主要成本驱动因素。迭代(t)是对该内存进行多少遍。并行度(p)是同时计算的通道数。更高的 m 和 t 意味着更强、更慢的哈希;默认值为 m=65536(64 MiB)、t=3、p=1。
为什么高内存设置会缓慢或无响应?
Argon2 会在你的浏览器中真实分配所请求的内存,因此像 1 GiB(1048576 KiB)这样的值在低 RAM 设备上可能停滞或失败。工具在超过 256 MiB 时警告。如果生成卡住请减小 m;无论如何参数都存储在哈希中。
哈希是否包含验证所需的一切?
是的。PHC 编码的输出内嵌变体、版本、m/t/p 参数、盐和摘要,因此验证只需密码和那一个字符串。不向任何地方发送内容——哈希和验证都通过 WebAssembly 本地运行。

更多工具