Java 8 121中需要BouncyCastle?
所以我们最近从java-1.8.0-openjdk-1.8.0.60-2.b27.el7_1.x86_64
更新的Java我们的Centos的服务器上,以java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/
,我们遇到了通信和TLS加密等方面的问题,我们发现了解决这些问题作为java.security
文件没有被用新的覆盖(如我们在文件中指定了BouncyCastleProvider)。一旦我们将java.security.rmpnew
移至java.security
,我们的沟通问题就消失了。Java 8 121中需要BouncyCastle?
但是,我们没有用BouncyCastleProvider
更新新的java.security
文件,但是我们的应用程序中使用BouncyCastleProvider
的加密没有中断。我们甚至从jre/lib/ext
目录中删除了bcprov-*.jar
,重新启动了tomcat,重新启动了整个服务器,然后仍然有效。我检查了发行说明,没有发现任何提及它的内容。我担心这些更改最终会中断,我们的加密将开始失败。但它在服务器上运行WITHOUT和BouncyCastleProvider
。我检查了发行说明,没有发现任何提及它的内容。我担心这些更改最终会中断,我们的加密将开始失败。但它在服务器上运行WITHOUT和BouncyCastleProvider
。
TLDR;我的问题是现在包含在Java8中的BouncyCastle?我们已经从java.security中移除了提供者,并从/ ext目录中移除了bcprov.jar,它仍然在工作。我们使用jasypt v1.9.2
进行加密。
pom.xml
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.52</version>
<scope>provided</scope>
</dependency>
代码:不包括在OpenJDK的8,或以前的版本
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
String algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC";
String providerName = "BC";
encryptor.setAlgorithm(algorithm);
encryptor.setProviderName(providerName);
String encData = EMPTY_STRING;
try{
encryptor.setPassword("myPassword");
encData = encryptor.encrypt(dataToEncrypt);
}
号BouncyCastle的。
很可能,该库捆绑在Web应用程序中或存在于Tomcat的扩展库之一中。
谢谢你的帮助。它必须被缓存在某个地方,因为几个星期后,我们开始失败。我不知道它在哪里缓存,因为我清理了缓存目录,重启了所有内容等等,但似乎我们仍然需要它。当我想知道我们如何在没有它的情况下进行加密时,这是一种解脱。再次感谢 – Niro