linux上java解加密(AES CBC)异常

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

用mapreduce做数据清洗的时候,需要对数据进行解密,加密方法是:AES/CBC/PKCS7Padding,由于java本身不支持,需要添加依赖,以下为解决方法:

因为我的服务使用docker容器启动的,所以以下步骤需要在docker容器中进行操作

  • 1.找包:bcprov-jdk15on-1.56.jar

看看开发给的jar包里有没有:

复制代码
jar -tvf wallet-summarize-1.0-SNAPSHOT.jar | grep bcprov

如果有,解压:

复制代码
jar -xvf wallet-summarize-1.0-SNAPSHOT.jar BOOT-INF/lib/bcprov-jdk15on-1.55.jar

如果没有,下载:

复制代码
https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on
  • 2.放包到:$JAVA_HOME/jre/lib/ext 下

  • 3.找到文件:$JAVA_HOME/jre/lib/security/java.security

    在security.provider.9 下新增一行:

    security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

  • 4.重启应用验证;


其实,以上问题是由于linux版本java与windows有一些区别导致的,解决方法如下:

  • 1、在mvn仓库中找到下载的包bcprov-jdk15on-1.56.jar,或者如果你不用maven,只要能下载到这个包,放到linux的$JAVA_HOME/jre\lib\ext下面;

  • 2、配置我的安全属性文件:vim /usr/java/jdk1.8.0_112/jre/lib/security/java.security

    1 security.provider.1=sun.security.provider.Sun
    2 security.provider.2=sun.security.rsa.SunRsaSign
    3 security.provider.3=sun.security.ec.SunEC
    4 security.provider.4=com.sun.net.ssl.internal.ssl.Provider
    5 security.provider.5=com.sun.crypto.provider.SunJCE
    6 security.provider.6=sun.security.jgss.SunProvider
    7 security.provider.7=com.sun.security.sasl.Provider
    8 security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    9 security.provider.9=sun.security.smartcardio.SunPCSC
    10 security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

第10行是我添加的,是由自己文件内容编号来确定的;

完成这些配置后,重新执行这个任务,成功!

相关推荐
天天进步20153 分钟前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
凡人叶枫36 分钟前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发
云栖梦泽40 分钟前
玩转RK3506SDK
linux·嵌入式硬件
极客先躯42 分钟前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
NE_STOP1 小时前
Raft算法处理细节
java
Java面试题总结1 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
努力攻坚操作系统1 小时前
编程语言编译运行机制对比:C / Java / Python
java·c语言·python
慧一居士1 小时前
对比两个文件内容是否完全一致,java实现示例
java
志栋智能1 小时前
超自动化巡检:提升MTTR,缩短业务影响时间
运维·自动化
再写一行代码就下班1 小时前
Cursor配置Java环境、创建Spring Boot项目的步骤
java·开发语言·spring boot