遇到什么写什么

Unsupported secret key algorithm

2018-03-22  本文已影响0人  三只松呀么松鼠

接手的一个项目当中用到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/整个文件夹文件进行了覆盖)服务启动测试,通过!

上一篇 下一篇

猜你喜欢

热点阅读