Unsupported secret key algorithm:DESede 异常

接手的一个项目当中用到3DES加密,项目突然爆出Unsupported secret key algorithm:DESede的错误:



java.security.NoSuchAlgorithmException:Unsupported secret key algorithm: DESede

      at com.sun.crypto.provider.DHKeyAgreement.engineGenerateSecret(DHKeyAgreement.java:387)

      at javax.crypto.KeyAgreement.generateSecret(KeyAgreement.java:648) 

报错信息日志


调用该方法发生的异常




通过一层一层深入查找发现了%JAVA_HOME%/lib(%JAVA_HOME%是jre的路径)下的jce.jar中KeyAgreementSpi 抽象类中的engineGenerateSecret抽象方法 而%JAVA_HOME%/lib/ext/目录下的sunjce_provider.jar 中DHKeyAgreement.class继承了这个抽象类 如下:


项目当时是使用Docker搭建的集群系统,JAVA环境是使用的一个官方镜像:


命令:docker images
命令:docker search tomcat

一个官方tomcat镜像

根据镜像ID 找到镜像的所在位置

sudo docker inspect #镜像ID#


找到镜像所在位置


发现%JAVA_HOME%中的文件有过更新

将服务器中的当前jre下sunjce_provider.jar包中DHKeyAgreement 与 本地环境做比较发现:


该方法的使用做了一些调整



无奈项目要求紧还没有闲心去深看具体的细节,最终只能将JDK的版本做了一下还原,替换成了原JDK的环境(直接把原jre/lib/整个文件夹文件进行了覆盖)服务启动测试,通过!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,918评论 2 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • Java9 新特性 翻译自 : https://docs.oracle.com/javase/9/whatsnew...
    deadoggy阅读 1,298评论 0 2
  • 柏拉图说,既然爱,就说出口,有些东西失去了,不会再回来! --题记 “我喜欢你,不知道从什么时候开始...
    思无邪_王小米阅读 496评论 0 2
  • 退休多年,可能有阅读强迫症,阅读量很大。有时候能连续阅读24小时以上,直到去年眼睛出了毛病。怕眼疾进一步发展,才把...
    老薛阅读 296评论 0 1