java.security.NoSuchAlgorithmException: No such algorithm: SM4/ECB/PKCS5Padding

最近自测一个SM4国密算法加解密过程中报如上错误,解决的具体方法如下,

先看看自己有没有这两个jar报

  bcprov-jdk15on-1.59.jar

  commons-lang3-3.1.jar

其实SM4加解密需要的,如果没有,则下载下来导入项目,如果还报错,再看看有没有jar包冲突,

我的报错原因是jar包冲突,项目中含有bcprov-jdk14-140.jar和bcprov-jdk15on-1.59.jar,

import org.bouncycastle.jce.provider.BouncyCastleProvider;直接引用到bcprov-jdk14-140.jar而

没有识别bcprov-jdk15on-1.59.jar导致,最后remove掉低版本的bcprov-jdk14-140.jar即可正常运行。

 

再次强调一下,我使用的myeclipse,自测的时候在Referenced Libraries中remove from build path里去掉了低版本的bcprov-jdk14-140.jar,

可以使用main方法在test类中运行,但是未在WebRoot中WEB-INF中的lib里面删除掉,最后部署项目

还是报ava.security.NoSuchAlgorithmException: No such algorithm: SM4/ECB/PKCS5Padding错,

翻来覆去找不到原因,最后把WebRoot中WEB-INF中的lib残留的低版本的bcprov-jdk14-140.jar的包remove掉即可正常使用