Ubuntu Linux 上 Jasypt 的不一致、缓慢的加密性能
Inconsistent, Slow Encryption Performance with Jasypt on Ubuntu Linux
我正在使用 Jasypt 的 BasicBinaryEncryptor 加密少量二进制数据(大约 1 KB)。我正在使用 Scala,但我怀疑这是否重要。
val encryptor = new BasicBinaryEncryptor
encryptor.setPassword(password)
val encrypted = encryptor.encrypt(bytes.toByteArray())
此加密操作的时间范围从几秒钟不等,但通常 运行 秒到一分钟或更长时间。也好像前几次操作运行还好,后面就变慢了。
我试过 Jasypt 版本 1.9.2 和 1.9.1。此操作在 Ubuntu Linux 14.04(Hotspot JVM 1.8.0_45)和 15.04 上运行缓慢,但 运行 在 Mac OS 上运行良好X(热点 JVM 1.8.0_40-b25)。
关于我可以更改哪些内容以提高 Ubuntu 上的性能的任何想法?
您遇到的问题是由 Jasypt 使用的盐生成器引起的。BasicBinaryEncryptor
使用 StandardPBEByteEncryptor with the default configuration for a SaltGenerator. This results in the use of RandomSaltGenerator which uses SecureRandom(从 Jasypt v1.9.1 开始)。如 markspace 所指出的,如果没有足够的熵可用,SecureRandom 将阻塞。
如果您可以使用 /dev/urandom
而不是 /dev/random
,您可以使用 -Djava.security.egd=file:/dev/urandom
启动您的程序,这不会阻塞。
另一种选择是配置您自己的加密器并使用不同的 SaltGenerator。 Jasypt 提供了一些您可以使用的固定 SaltGenerators,或者您可以随机生成一个不使用 SecureRandom 的。
在我们的 Ubuntu 服务器上,我们通过 apt-get
安装了 haveged
软件包。
在此处了解更多信息:http://www.issihosts.com/haveged/
该包默认不安装,但会生成熵。这样做之后,我们可以换回 /dev/random
而不是使用 /dev/urandom
.
我正在使用 Jasypt 的 BasicBinaryEncryptor 加密少量二进制数据(大约 1 KB)。我正在使用 Scala,但我怀疑这是否重要。
val encryptor = new BasicBinaryEncryptor
encryptor.setPassword(password)
val encrypted = encryptor.encrypt(bytes.toByteArray())
此加密操作的时间范围从几秒钟不等,但通常 运行 秒到一分钟或更长时间。也好像前几次操作运行还好,后面就变慢了。
我试过 Jasypt 版本 1.9.2 和 1.9.1。此操作在 Ubuntu Linux 14.04(Hotspot JVM 1.8.0_45)和 15.04 上运行缓慢,但 运行 在 Mac OS 上运行良好X(热点 JVM 1.8.0_40-b25)。
关于我可以更改哪些内容以提高 Ubuntu 上的性能的任何想法?
您遇到的问题是由 Jasypt 使用的盐生成器引起的。BasicBinaryEncryptor
使用 StandardPBEByteEncryptor with the default configuration for a SaltGenerator. This results in the use of RandomSaltGenerator which uses SecureRandom(从 Jasypt v1.9.1 开始)。如 markspace 所指出的,如果没有足够的熵可用,SecureRandom 将阻塞。
如果您可以使用 /dev/urandom
而不是 /dev/random
,您可以使用 -Djava.security.egd=file:/dev/urandom
启动您的程序,这不会阻塞。
另一种选择是配置您自己的加密器并使用不同的 SaltGenerator。 Jasypt 提供了一些您可以使用的固定 SaltGenerators,或者您可以随机生成一个不使用 SecureRandom 的。
在我们的 Ubuntu 服务器上,我们通过 apt-get
安装了 haveged
软件包。
在此处了解更多信息:http://www.issihosts.com/haveged/
该包默认不安装,但会生成熵。这样做之后,我们可以换回 /dev/random
而不是使用 /dev/urandom
.