Argon2哈希生成器
Free完全在浏览器中生成和验证Argon2id/Argon2i/Argon2d密码哈希,可调节内存成本、时间成本和并行度。
完全在您的浏览器中使用 WebAssembly 运行,不会向服务器发送任何内容。
预设
最近活动
所有人可见。所有访客的最近 20 次使用记录,最新的在前。
暂无活动记录。快来成为第一个吧。
此工具的功能
此工具完全在您的浏览器中使用 WebAssembly 生成 Argon2 密码哈希(Argon2id、Argon2i 或 Argon2d),可调节内存成本、时间成本、并行度、哈希长度和盐值,还内置验证器可根据现有编码哈希检查密码。
工作原理
Argon2 在 2015 年赢得了密码哈希竞赛,其设计刻意追求缓慢且高内存消耗,使得暴力破解大量密码在时间和内存方面都变得昂贵,而不仅仅是时间。它接收一个密码、一个随机盐值和三个成本参数:内存成本(使用多少 RAM)、时间成本(对该内存执行多少遍),以及并行度(同时运行多少个独立通道),然后生成所需长度的哈希。结果被打包成标准编码格式 $argon2id$v=19$m=<以 KiB 为单位的内存>,t=<迭代次数>,p=<并行度>$<盐值>$<哈希>,该格式是自描述的:之后验证密码只需从字符串中读回这些参数、重新执行相同的计算,然后比较输出即可。
解决的问题
- 无需运行任何服务器端代码即可生成用于存储的安全加盐密码哈希。
- 调整内存成本、时间成本和并行度以匹配您应用程序的安全性和性能需求。
- 验证给定密码是否与之前生成的 Argon2 哈希匹配。
- 检查现有 Argon2 哈希中嵌入的参数,而无需手动解码。
常见问题
›我应该使用哪个 Argon2 变体?
对于大多数密码哈希使用场景,推荐默认使用 Argon2id,它兼具抵御侧信道攻击(如 Argon2i)和 GPU/ASIC 破解尝试(如 Argon2d)的能力。仅当侧信道抵抗是您的首要考虑时才使用 Argon2i,或仅在没有侧信道威胁的应用(如加密货币挖矿)中使用 Argon2d。
›为什么生成哈希有时需要几秒钟?
这种延迟正是 Argon2 的核心所在:它被刻意设计得内存消耗大且速度慢,这样以每秒数百万次猜测尝试的攻击者,每次猜测都必须花费与您刚才生成一次哈希相同的时间和内存。像"最大"这样更高的预设需要更长时间,因为它们使用更多的内存和迭代次数。
›编码哈希和十六进制输出有什么区别?
编码哈希是标准的 PHC 字符串格式($argon2id$v=19$m=...,t=...,p=...$盐值$哈希),它将算法、版本、参数和盐值与哈希捆绑在一起,因此是自包含的,可直接用于后续验证。十六进制输出只是原始哈希字节,如果您需要将哈希及其参数存储在单独的数据库列中,这会很有用。
›我的密码会被发送到任何地方吗?
不会。哈希完全在您的浏览器中使用 WebAssembly 计算,您在此输入的任何内容都不会传输到任何服务器。
›我应该生成自己的盐值还是使用随机盐值?
真实密码存储请使用随机盐值,这正是自动生成的 16 字节盐值的用途,每次页面加载都是唯一的。提供自定义的固定盐值仅适用于测试或重现特定已知哈希。
评论 (0)
觉得这个工具有用吗?留下评论、分享一个小技巧,或者告诉我们如何改进它。
暂无评论,快来抢沙发分享您的想法吧!