第二个大坑,Illegal key size 报错问题,你的代码是没错的,jdk的问题
此篇文章是承接微信支付下面这篇文章
第一个坑,调起微信支付失败的原因之一
返回的参数一定要小写啊,特别是timestamp ,能小写劲量小写,否则不能调起微信支付(即弹到微信里支付)
JSONObject object = WechatPayUtils.WxTuneUp(prepay_id, WechatPayConfig.appId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("appid", appId);
jsonObject.put("partnerid", WechatPayConfig.mchId);
jsonObject.put("prepayid", prepay_id);
jsonObject.put("package", WechatPayConfig.PACKAGE);
jsonObject.put("noncestr", noncestr);
jsonObject.put("timestamp", time);
jsonObject.put("signtype", "RSA");
jsonObject.put("sign", packageSign);
第二个大坑,Illegal key size 报错问题,你的代码是没错的,jdk的问题
javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1029)
javax.crypto.Cipher.implInit(Cipher.java:795)
javax.crypto.Cipher.chooseProvider(Cipher.java:854)
javax.crypto.Cipher.init(Cipher.java:1374)
javax.crypto.Cipher.init(Cipher.java:1308)
com.focustech.common.codec.encrypter.AES256Encrypter.cipher(AES256Encrypter.java:37)
com.focustech.common.codec.encrypter.AES256Encrypter.encrypt(AES256Encrypter.java:45)
异常原因:如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于jdk/jre/lib/security,
解决办法也很简单:
替换jdk 与jre下两个jar包:local_policy.jar和 US_export_policy.jar即可。
一般下载jdk的时候,已经有jre了,所以一般就只用改 jdk/jre/lib/security这个目录的两个jar包就好了。
官方网站提供了JCE无限制权限策略文件的下载:
请根据JDK版本去官方下载JCE无限制权限策略文件
https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html
jdk 5:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
jdk6:
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
jdk7:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
jdk8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
但是下载需要钱,我这准备了1.8jdk的,如果需要其他我可以帮你找。下面是1.8jdk的
链接:https://pan.baidu.com/s/1BEx-Q4Gr_TjwG9uFKhO6pw
提取码:6666