我在API中有一段Java代码,该API使用AES和256位密码来解密字符串。解密后,将其用作连接数据库的密码。
该API部署在Red Hat Linux上的tomcat上。问题在于,对于大多数请求而言,解密过程花费的时间太长(约15分钟)。 5个请求中有1个是瞬时的。我不在任何地方存储解密的密钥。知道为什么有些请求要花很长时间,而有些请求要花几毫秒吗?
令人讨厌的部分是,我在相同的tomcat中部署了另一个具有相同长度密码短语的API,解密只需几毫秒。
最佳答案
这可能与熵不足有关,请尝试使用以下系统属性:-Djava.security.egd=file:/dev/./urandom
如redhat bug 118921中所述,此命令应显示您是否有熵问题(它将挂起):
dd if=/dev/random of=testfile bs=1 count=1