解决微信支付APIV3获取平台证书报错:java.security.InvalidKeyException: Illegal key size
一、环境说明:
1、JDk 1.8
2、AESUtil 使用微信提供的工具类;
3、不用浪费时间去使用微信提供的Jar包,获取平台证书只有一条通道,访问接口后台解密使用FileWriter写入本地;
4、保证项目中的 appId、证书等信息都没写错
二、解决方案:
1、JDK 默认的 Key 长度不支持 256,使用的 AESUtil 是需要256的,并非工具类中写的 TAG_LENGTH_BIT = 128
2、Centos的环境,找到安装jdk的路径打开 /jre/lib/security/ ,找到 java.security 的文件中的 #crypto.policy=unlimited;
[root@iZ2zeclnloq53k8jl0v77zZ security]# pwd
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-3.el8_2.x86_64/jre/lib/security
我的是在850行的样子,实际上在Centos中的JDK已经帮我们准备好了这个版本的jar包,只需要在这里切换策略就行了。

3、去 oracle 官网下载对应jdk版本的 jce_policy ,JDK8 点此下载 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html,不想注册Oracle,嫌麻烦的,来Q群183579482 的群文件里面下载吧。
下载之后找到你电脑安装的路径 G:\jdk8\jre\lib\security(方法也适用Centos),将下载出来的两个jar包解压到里面把之前的jar包覆盖了,就OK;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)