2

我们有一个大型 Java Web 应用程序,必须将散列算法切换到 Argon2id。

我们对 20 个并发登录进行了负载测试,以了解响应时间并找到正确的参数。(在生产环境中,每个服务器实例的并发登录数是原来的 3 倍)

与所选参数无关(我们确定为 $argon2id$v=19$m=31250,t=8,p=1),Argon2id 实现的响应时间高度不一致:

90% 的哈希在 < 0.5 秒内完成,然后是 10 次左右的调用,耗时 4 或 5 秒。在那个尖峰之后,它会回到 < 0.5 秒。

使用更安全的参数,峰值将达到 10 秒以上。

我的猜测是延迟是由垃圾收集引起的。我们降低了内存使用量,但问题仍然存在。

平台是 WebSphere 9,实现是:

<dependency>
    <groupId>de.mkammerer</groupId>
    <artifactId>argon2-jvm</artifactId>
    <version>2.10.1</version>
</dependency>

那么,如何在高流量 Web 应用程序中使用 Argon2id?尝试其他实现?以某种方式调整GC?

有人在大型网络应用程序中使用过它吗?

4

0 回答 0