linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法
對(duì)接第三方廠商需求時(shí),需要對(duì)數(shù)據(jù)AES256進(jìn)行解密,由于java本身不支持,需要添加依賴。
文章目錄
- 一、版本適配
- 1. 版本對(duì)應(yīng)關(guān)系
- 2. maven倉(cāng)庫(kù)地址
- 3. maven坐標(biāo)
- 二、linux jdk策略下載
- 2.1. JDK6 jce
- 2.2. JDK7 jce
- 2.3. JDK8 jce
- 三、linux jdk策略配置
- 四、linux 移動(dòng)jar并配置
- 4.1. 異常日志截圖
- 4.2. 解決方案
- 4.3. 重啟服務(wù)再次測(cè)試
一、版本適配
1. 版本對(duì)應(yīng)關(guān)系
環(huán)境windows和linux
| jdk1.6.0_24 | bcprov-jdk14-140.jar |
| jdk-7u45 | bcprov-jdk15on-1.54.jar 或者jce-jdk13-119.jar |
| jdk1.8.0_144 | bcprov-jdk15on-1.56.jar |
2. maven倉(cāng)庫(kù)地址
https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on
3. maven坐標(biāo)
<!--適配jdk1.5及jdk1.6><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.4x</version> </dependency><!--適配jdk1.7><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version> </dependency><!--適配jdk1.8><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version> </dependency>二、linux jdk策略下載
聲明:以上版本屬于限制版本jdk,為了適配AES加解密官方網(wǎng)站提供了JCE無(wú)限制權(quán)限策略文件的下載,替換以前的策略文件
2.1. JDK6 jce
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
2.2. JDK7 jce
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
2.3. JDK8 jce
JDK8的下載地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
三、linux jdk策略配置
從官網(wǎng)下載jce策略文件(補(bǔ)丁包),進(jìn)入到jdkjre\lib\security目錄 ,覆蓋原有策略文件,建議備份重命名即可。
如果上面操作完成后還不行,繼續(xù)執(zhí)行下面操作,下面經(jīng)過(guò)我的線上已經(jīng)測(cè)試通過(guò)。
四、linux 移動(dòng)jar并配置
4.1. 異常日志截圖
4.2. 解決方案
1.把包bcprov-jdk15on-1.56.jar放到linux的$JAVA_HOME/jre\lib\ext下面; 2.配置我的安全屬性文件:vim /$JAVA_HOME/jre/lib/security/java.securitysecurity.provider.1=sun.security.provider.Sun security.provider.2=sun.security.rsa.SunRsaSign security.provider.3=sun.security.ec.SunEC security.provider.4=com.sun.net.ssl.internal.ssl.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider security.provider.7=com.sun.security.sasl.Provider security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI security.provider.9=sun.security.smartcardio.SunPCSC #下面這一行是我新添加的 security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider4.3. 重啟服務(wù)再次測(cè)試
總結(jié)
以上是生活随笔為你收集整理的linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot 整合Shiro E
- 下一篇: [Err] 1055 - Express