Java开发微信V3支付报错java.security.InvalidKeyException: Illegal key size - 解决方案(JCE无限制权限策略文件)

在对接微信收付通时遇到AES加解密报错'Illegal key size',原因是JDK默认限制了256位密钥。解决方案包括:对于jdk1.8.151前的版本,替换JCE权限文件;对于1.8.151及以后的版本,修改java.security文件设置crypto.policy为unlimited。
摘要由CSDN通过智能技术生成

一、本人问题发现场景

再对接微信收付通的产品时需要对部分数据就行加密解密,发现会报以下错误Illegal key size

Exception in thread "main" java.security.InvalidKeyException: Illegal key size
	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)
	at javax.crypto.Cipher.implInit(Cipher.java:805)
	at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
	at javax.crypto.Cipher.init(Cipher.java:1396)
	at javax.crypto.Cipher.init(Cipher.java:1327)
	at com.software.dev.util.MainEntrance.Encrypt(MainEntrance.java:83)
	at com.software.dev.util.MainEntrance.main(MainEntrance.java:23)

此错误原因时因为jdk默认是不允许进行256位密钥的AES加解密,解决的办法有两种情况,跟jdk的版本有关,暂时我遇到问题分为两个,一个是jdk1.8.151以前的版本和jdk1.8.151及以后的版本,本人解决方法如下。

二、解决方案

1.jdk1.8.151之前的版本

在这个版本之前的djk需要替换$JAVA_HOME/jre/lib/security目录下的权限文件,下载好文件之后直接替换文件即可,如下图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老徐··

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值