AES解密失败处理

现象场景

项目背景是基于企业微信开发的一套中台系统,本地调试企业微信回调的时候出现解密失败

为什么会出现

在这里插入图片描述
        异常java.security.InvalidKeyException:illegal Key Size,是因为美国对加密解密等软件进行了出口限制,Java 发布的运行环境包中的加解密有一定的限制,比如默认不允许 256 位密钥的 AES 加解密(在Java的核心类库中有一个JCE(Java Cryptography Extension),JCE是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现,在我们安装的JRE目录下有这样一个文件夹:
%JAVE_HOME%\jre\lib\security,其中包含有两个.jar文件:“local_policy.jar ”和“US_export_policy.jar”,默认是支持128位密钥的加密算法)。
在这里插入图片描述

,而企业微信API中加解密方案使用的是32个字节(256位)的密钥,已经超出它的范围,无法支持,所以才会报:“java.security.InvalidKeyException: Illegal key size”的异常

如何解决

A:官网下载相应JDK版本对应的JCE无限制权限策略文件,替换掉JRE对应的%JAVE_HOME%\jre\lib\security目录下的“local_policy.jar ”和“US_export_policy.jar”包
JDK8:
官网JRE下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
百度云盘:https://pan.baidu.com/s/12-7IbEzDAuXGClRkrg3M8g 提取码:2f87
B:升级JDK版本,java 版本在 1.8.0_161之后默认支持256位密钥,我本地JDK版本是1.8.0_40,所以会出现如上问题
      官网java8发行版更改说明链接
在这里插入图片描述

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值