WMW

Argon2哈希生成器

Free

完全在浏览器中生成和验证Argon2id/Argon2i/Argon2d密码哈希,可调节内存成本、时间成本和并行度。

完全在您的浏览器中使用 WebAssembly 运行,不会向服务器发送任何内容。

预设

最近活动

所有人可见。所有访客的最近 20 次使用记录,最新的在前。

暂无活动记录。快来成为第一个吧。

评论 (0)

觉得这个工具有用吗?留下评论、分享一个小技巧,或者告诉我们如何改进它。

访客评论在发布前会经过审核。 登录 即可立即发布。

暂无评论,快来抢沙发分享您的想法吧!

此工具的功能

此工具完全在您的浏览器中使用 WebAssembly 生成 Argon2 密码哈希(Argon2id、Argon2i 或 Argon2d),可调节内存成本、时间成本、并行度、哈希长度和盐值,还内置验证器可根据现有编码哈希检查密码。

工作原理

Argon2 在 2015 年赢得了密码哈希竞赛,其设计刻意追求缓慢且高内存消耗,使得暴力破解大量密码在时间和内存方面都变得昂贵,而不仅仅是时间。它接收一个密码、一个随机盐值和三个成本参数:内存成本(使用多少 RAM)、时间成本(对该内存执行多少遍),以及并行度(同时运行多少个独立通道),然后生成所需长度的哈希。结果被打包成标准编码格式 $argon2id$v=19$m=<以 KiB 为单位的内存>,t=<迭代次数>,p=<并行度>$<盐值>$<哈希>,该格式是自描述的:之后验证密码只需从字符串中读回这些参数、重新执行相同的计算,然后比较输出即可。

解决的问题

常见问题

我应该使用哪个 Argon2 变体?

对于大多数密码哈希使用场景,推荐默认使用 Argon2id,它兼具抵御侧信道攻击(如 Argon2i)和 GPU/ASIC 破解尝试(如 Argon2d)的能力。仅当侧信道抵抗是您的首要考虑时才使用 Argon2i,或仅在没有侧信道威胁的应用(如加密货币挖矿)中使用 Argon2d。

为什么生成哈希有时需要几秒钟?

这种延迟正是 Argon2 的核心所在:它被刻意设计得内存消耗大且速度慢,这样以每秒数百万次猜测尝试的攻击者,每次猜测都必须花费与您刚才生成一次哈希相同的时间和内存。像"最大"这样更高的预设需要更长时间,因为它们使用更多的内存和迭代次数。

编码哈希和十六进制输出有什么区别?

编码哈希是标准的 PHC 字符串格式($argon2id$v=19$m=...,t=...,p=...$盐值$哈希),它将算法、版本、参数和盐值与哈希捆绑在一起,因此是自包含的,可直接用于后续验证。十六进制输出只是原始哈希字节,如果您需要将哈希及其参数存储在单独的数据库列中,这会很有用。

我的密码会被发送到任何地方吗?

不会。哈希完全在您的浏览器中使用 WebAssembly 计算,您在此输入的任何内容都不会传输到任何服务器。

我应该生成自己的盐值还是使用随机盐值?

真实密码存储请使用随机盐值,这正是自动生成的 16 字节盐值的用途,每次页面加载都是唯一的。提供自定义的固定盐值仅适用于测试或重现特定已知哈希。

相关工具