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掉即可正常使用