Java 8 121 需要 BouncyCastle?
BouncyCastle required in Java 8 121?
因此,我们最近将 Centos 服务器上的 Java 从 java-1.8.0-openjdk-1.8.0.60-2.b27.el7_1.x86_64
更新为 java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/
,并且我们 运行 遇到了通信和 TLS 加密等方面的问题。我们发现了这些问题的解决方案是 java.security
文件没有被新文件覆盖(因为我们在文件中指定了 BouncyCastleProvider)。一旦我们将 java.security.rmpnew
移动到 java.security
的位置,我们的沟通问题就消失了。
我们没有使用 BouncyCastleProvider
更新新的 java.security
文件,但是,我们的应用程序中使用 BouncyCastleProvider
的加密并未中断。我们甚至从 jre/lib/ext
目录中删除了 bcprov-*.jar
,重新启动 tomcat,重新启动了整个服务器,但它仍然有效。我检查了发行说明,但没有发现任何提及它的内容。我担心这些更改最终会失效,我们的加密会开始失败。然而,它在没有和 server.I 上的 BouncyCastleProvider
的情况下工作已经检查了发行说明,但没有发现任何提及它的内容。我担心这些更改最终会失效,我们的加密会开始失败。然而它在服务器上没有和 BouncyCastleProvider
的情况下工作。
TLDR;我的问题是 BouncyCastle 现在包含在 Java8 中了吗?我们已经从 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>
代码:
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 未包含在 OpenJDK 8 或之前的版本中。
最有可能的是,该库捆绑在 Web 应用程序中或存在于 Tomcat 的扩展库之一中。
因此,我们最近将 Centos 服务器上的 Java 从 java-1.8.0-openjdk-1.8.0.60-2.b27.el7_1.x86_64
更新为 java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/
,并且我们 运行 遇到了通信和 TLS 加密等方面的问题。我们发现了这些问题的解决方案是 java.security
文件没有被新文件覆盖(因为我们在文件中指定了 BouncyCastleProvider)。一旦我们将 java.security.rmpnew
移动到 java.security
的位置,我们的沟通问题就消失了。
我们没有使用 BouncyCastleProvider
更新新的 java.security
文件,但是,我们的应用程序中使用 BouncyCastleProvider
的加密并未中断。我们甚至从 jre/lib/ext
目录中删除了 bcprov-*.jar
,重新启动 tomcat,重新启动了整个服务器,但它仍然有效。我检查了发行说明,但没有发现任何提及它的内容。我担心这些更改最终会失效,我们的加密会开始失败。然而,它在没有和 server.I 上的 BouncyCastleProvider
的情况下工作已经检查了发行说明,但没有发现任何提及它的内容。我担心这些更改最终会失效,我们的加密会开始失败。然而它在服务器上没有和 BouncyCastleProvider
的情况下工作。
TLDR;我的问题是 BouncyCastle 现在包含在 Java8 中了吗?我们已经从 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>
代码:
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 未包含在 OpenJDK 8 或之前的版本中。
最有可能的是,该库捆绑在 Web 应用程序中或存在于 Tomcat 的扩展库之一中。