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