2017-02-21 287 views
0

所以我們最近從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); 
} 

回答

1

號BouncyCastle的。

很可能,該庫捆綁在Web應用程序中或存在於Tomcat的擴展庫之一中。

+0

謝謝你的幫助。它必須被緩存在某個地方,因爲幾個星期後,我們開始失敗。我不知道它在哪裏緩存,因爲我清理了緩存目錄,重啓了所有內容等等,但似乎我們仍然需要它。當我想知道我們如何在沒有它的情況下進行加密時,這是一種解脫。再次感謝 – Niro