0
点赞
收藏
分享

微信扫一扫

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法


对接第三方厂商需求时,需要对数据AES256进行解密,由于java本身不支持,需要添加依赖。

文章目录

  • ​​一、版本适配​​
  • ​​1. 版本对应关系​​
  • ​​2. maven仓库地址​​
  • ​​3. maven坐标​​
  • ​​二、linux jdk策略下载​​
  • ​​2.1. JDK6 jce​​
  • ​​2.2. JDK7 jce​​
  • ​​2.3. JDK8 jce​​
  • ​​三、linux jdk策略配置​​
  • ​​四、linux 移动jar并配置​​
  • ​​4.1. 异常日志截图​​
  • ​​4.2. 解决方案​​
  • ​​4.3. 重启服务再次测试​​
一、版本适配
1. 版本对应关系

环境windows和linux

jdk版本

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仓库地址

​​https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on​​

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_aes加解密


linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_ide_02

3. maven坐标

<!--适配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加解密官方网站提供了JCE无限制权限策略文件的下载,替换以前的策略文件

2.1. JDK6 jce

​​http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html​​

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_java_03


linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_java_04

2.2. JDK7 jce

​​http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html​​

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_aes加解密_05


linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_ide_06

2.3. JDK8 jce

JDK8的下载地址:

​​http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html​​

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_aes加解密_07


linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_linux_08

三、linux jdk策略配置

从官网下载jce策略文件(补丁包),进入到jdkjre\lib\security目录 ,覆盖原有策略文件,建议备份重命名即可。

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_java_09


如果上面操作完成后还不行,继续执行下面操作,下面经过我的线上已经测试通过。

四、linux 移动jar并配置
4.1. 异常日志截图

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_aes加解密_10


linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_ide_11

4.2. 解决方案

1.把包bcprov-jdk15on-1.56.jar放到linux的$JAVA_HOME/jre\lib\ext下面; 
2.配置我的安全属性文件:vim /$JAVA_HOME/jre/lib/security/java.security

security.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.BouncyCastleProvider

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法_java_12

4.3. 重启服务再次测试


举报

相关推荐

0 条评论