使用WXPAY-退款回调时AES加密时报错
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1026)
at javax.crypto.Cipher.implInit(Cipher.java:801)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1249)
at javax.crypto.Cipher.init(Cipher.java:1186)
at com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult.fromXML
在Java的核心类库中有一个JCE(Java Cryptography Extension),JCE是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现,所以这个是实现加密解密的重要类库。
是因为AES在进行加密处理的时候并没有经果特殊的处理,但是在使用256位密钥加解密的时候,如果不进行特殊处理的话,往往会出现报“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。
问题解决
我们要做的就是更换JCE的库,该文件位置在你的JDK/jre/lib/security 目录下面,该目录下我们可以看到两个jar包:local_policy.jar,US_export_policy.jar,这两个jar包是jdk自带的。我们需要下载支持256位密钥加密的jar包。
下载与自己JDK版本一致的JCE ,重启服务