我正在使用jbcrypt来哈希项目中的密码.验证我正在使用的硬件上的密码时性能大约为500毫秒(log_rounds设置为12).然而,经过一段时间的常规使用后,表演时间突然下降到惊人的15秒.下降非常突然,没有累积,并且在重新启动过程之前保持不变.
分析显示在密钥(..)方法中使用了额外的时间.
来源:http://jbcrypt.googlecode.com/svn/tags/jbcrypt-0.3m/src/main/java/org/mindrot/jbcrypt/BCrypt.java
此方法仅使用xor,shift等基本函数计算哈希值.没有对象分配,外部资源的使用,随机数生成等.
在同一进程中,性能不会因其他功能而下降.内存分配稳定且低.不涉及完整的GC.
有没有人见过这个或为什么会发生这种情况的任何线索?我可以理解一种可变性能在某种程度上取决于其他情况,但这是一个非常突然和稳定的下降,从大约500ms.到大约15000毫秒.