Argon2 密码哈希

生成带随机盐的 argon2id/i/d 密码哈希,在线校验 PHC 哈希并解析类型、版本与参数

生成哈希

每次生成使用新的 16 字节随机盐并输出标准 PHC 格式($argon2id$v=19$m=…,t=…,p=…$盐$哈希),盐内嵌在哈希中,无需单独保存。

内存与迭代越大越安全也越慢:默认档(64 MiB × 3 次)约 0.1-0.5 秒,256 MiB 档可能需数秒;m ∈ 1-256 MiB、t ∈ 1-10、p ∈ 1-8。

输入密码后点击「生成哈希」

校验哈希

粘贴既有 PHC 格式哈希并输入明文密码即可比对,支持 argon2id / argon2i / argon2d(v=19)。

类型 argon2id · v19 · m=1024 KiB · t=1 · p=1 · 盐 16 字节 / 哈希 32 字节

待校验

纯浏览器端本地运算(Web Crypto 生成随机盐 + Web Worker 内 WASM 计算),密码与哈希不会上传到任何服务器。

常见问题

Argon2 和 bcrypt 怎么选?
新项目优先选 argon2id。bcrypt 有 72 字节密码截断且不抗 GPU 暴破(无内存困难性),Argon2 是 PHC 密码哈希竞赛冠军、OWASP 密码存储指引现行首推,内存参数使 GPU/ASIC 并行攻击成本高得多。已有 bcrypt 存量系统的用户可在登录时静默升级为 argon2id(bcrypt 校验通过后重哈希)。
内存 m、迭代 t、并行度 p 怎么调?
经验法则:让单次哈希耗时落在 100-500 毫秒。先定内存(越大越抗 GPU,常见 19 MiB(m=19456)到 64 MiB(m=65536)),再用迭代次数补足耗时(默认 t=3),并行度 p 一般不动(浏览器端是单线程交错执行,加大 p 只增加内存下限)。OWASP 最低推荐档为 m=19456、t=2、p=1。
PHC 哈希串怎么读?
以 $argon2id$v=19$m=65536,t=3,p=4$盐$哈希 为例:argon2id 是类型(id/i/d),v=19 是版本,m 内存(KiB)、t 迭代、p 并行度,最后两段分别是 Base64 编码的盐与哈希。参数与盐全部内嵌,校验时解析即可复现计算,直接整串入库。
为什么浏览器里能算 Argon2?
本工具通过 WebAssembly(hash-wasm)在浏览器本地执行 Argon2 官方实现,与服务器端结果完全一致。计算放在 Web Worker 中进行,内存与迭代拉满也不会卡住页面;密码与哈希全程不离开本机。
argon2i 和 argon2id 有什么区别?
argon2i 抗侧信道攻击(内存访问与数据无关),适合密钥派生等场景但抗 GPU 略弱;argon2d 抗 GPU 最强但抗侧信道最弱;argon2id 混合两者,是密码存储的通用推荐。存用户密码一律选 argon2id。

相关工具