Java里AES256位加解密问题

时间:2024-03-27 19:01:30

      平时对请求和响应参数进行AES加密都是采取128位加密的,今天对接的一个项目却是只支持256的,就做了下修改:

Java里AES256位加解密问题

本地执行正常的,但是放上服务器后,结果就:

Java里AES256位加解密问题

无情的抛了个异常

java.security.InvalidKeyException: Illegal key size or default parameters(key大小或默认参数异常)

      查到资料发现原来JDK是不支持AES的256加密的,官方网站上提供了扩展包叫无限制JCE策略文件,用于覆盖原有的

两个jar包,就可以支持256加密了

  下载网址:

JDK7的下载地址: https://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

解压出来后有这些文件:

Java里AES256位加解密问题

这两个jar的替换路径为:

你的jdk所在路径/jre/lib/security,进去就能看到这两个jar包了。
 

注意:我本地加解密成功可以而服务器不行的问题,我服务器上的jdk版本是jdk1.8.0_112,而本地的为jdk 1.8.0_191,

本地版本进去后是连替换jar所在文件夹都变了:

你的jdk路径/jre\lib\security\policy,下面有limited和unlimited两个文件夹,都有这两个jar。

这里我推测是jdk1.8升级到后面的版本后已经解决了AES256加解密的问题。

进官网查这个版本的更新内容,并没有明说是解决了AES256问题,但有说修改了一些加密的问题,有兴趣的可以看下:

https://www.oracle.com/technetwork/java/javase/8u191-relnotes-5032181.html


 

 

 

 

相关文章