[1125]AES加密报错:Illegal key size or default parameters
当遇到这个问题,首先查看你的jdk版本
C:\Users\enmonster>java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
jdk1.8.0_151这个版本报错Illegal key size or default parameters。
解决方案
直接升级你的jdk到1.8.0_180或1.8.0_251或1.8.0_311版本以上就行了
最近在使用AES方式进行加密,本来经果测试已经没有问题,但是在更新了密钥key之后,就出现了下列报错
控制台报错如下:
Exception in thread "main" java.lang.RuntimeException: Illegal key size or default parametersat com.cupdata.oam.cardapply.kit.AesKit.decrypt(AesKit.java:98)at com.cupdata.oam.cardapply.kit.AesKit.decrypt(AesKit.java:86)at com.cupdata.oam.cardapply.kit.AesKit.decryptToStr(AesKit.java:56)at com.cupdata.oam.cardapply.kit.AesKit.main(AesKit.java:194)
Caused by: java.security.InvalidKeyException: Illegal key size or default parametersat javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1026)at javax.crypto.Cipher.implInit(Cipher.java:801)at javax.crypto.Cipher.chooseProvider(Cipher.java:864)at javax.crypto.Cipher.init(Cipher.java:1249)at javax.crypto.Cipher.init(Cipher.java:1186)at com.cupdata.oam.cardapply.kit.AesKit.decrypt(AesKit.java:94)... 3 more
网上搜索发现,由于key的变更(由原来的128位变更为256位),导致加密/解密的失败。
原来的密钥:lNQqkL1BfSwt2MKw
新的密钥: P_e-BhqDPP0yeMe8Ma43ZhhL6fqevuR8
之所以会出现这种问题,我们就要了解一个新的东西——JCE。在Java的核心类库中有一个JCE(Java Cryptography Extension),JCE是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现,所以这个是实现加密解密的重要类库。
之所以会出现上述的报错问题:是因为AES在进行加密处理的时候并没有经果特殊的处理,但是在使用256位密钥加解密的时候,如果不进行特殊处理的话,往往会出现报“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。
问题解决
通过上面描述,我们知道了问题的所在,下面开始解决。我们要做的就是更换JCE的库,该文件位置在你的JDK/jre/lib/security
目录下面,该目录下我们可以看到两个jar包:local_policy.jar
,US_export_policy.jar
,这两个jar包是jdk自带的。我们需要下载支持256位密钥加密的jar包。
备注:一定要下载与自己JDK版本一致的JCE,否则无效。
JDK8:
其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载完后,解压,将其中的“local_policy.jar ”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。
JDK7:
其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
下载完后,解压,将其中的“local_policy.jar ”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。
JDK6:
其对应的JCE下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
下载完后,解压,将其中的“local_policy.jar ”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。
JDK5:
其对应的JCE下载地址为:http://download.csdn.net/detail/scs2043/4237335
下载完后,解压,将其中的“local_policy.jar ”和“US_export_policy.jar”两个文件替换掉自己%JAVE_HOME%\jre\lib\security文件夹下对应的原文件(%JAVE_HOME%是自己电脑的Java路径)。
扩展:
真实项目开发肯定在Linux中,前面我们知道Windos下更换JCE的方法,那么的Linux中怎么更换?如果你以为一样去替换jar包,那就大错特错了,因为JDK1.8以上的该目录下压根没有这两个JAR包。(如果真有,就直接替换)
针对这种情况,我们的解决方式为:vim 命令打开java.security
文件,将注释掉的 #crypto.policy=unlimited
打开,然后保存即可
来源:https://blog.csdn.net/tomatocc/article/details/85096911
[1125]AES加密报错:Illegal key size or default parameters相关推荐
- Illegal key size or default parameters
用了一个加密算法 反正就是给个key+secret 加密成另外一段文字 不关心加密过程,但是之前都能加密成功,今天加密直接就报错了..Illegal key size or default param ...
- java.security.InvalidKeyException: Illegal key size or default parameters
今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size or default parameters ...
- AES 加密256位 错误 java.security.InvalidKeyException: Illegal key size or default parameters
Java发布的运行环境包中的加解密有一定的限制.比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件. 官方网站提供了JCE无限制权限策略文件的下载: JDK8的下载地址: http: ...
- AES加密报错:Illegal key size or default parameters或希望支持32位密钥
今天在接一个中·宣部文档时用到了AES128加密,对方给的密钥是32位的,方法写完运行时报该错误,如下: 问题原因jdk自带的加密包,不支持32位密钥加密,需要下载jar包替换掉 需要替换的jar包: ...
- java报错只有一个数字4,Java 报错 illegal Key Size
推荐文章 Passwords are still the primary method of authentication today, in a form of something you know ...
- java.security.InvalidKeyException: Illegal key size
来源:https://blog.csdn.net/dling8/article/details/84061948 今天在使用idea打包maven项目时,出现这个错误:java.security.In ...
- java.security.InvalidKeyException Illegal key size
今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size.(测试也可能会出现这个问题)貌似是因为加密 ...
- 控制台报错:java.security.InvalidKeyException: Illegal key size
在学习微信支付V3的时候启动项目报错java.security.InvalidKeyException: Illegal key size 原因是:数据代码在传输过程中的安全,很多时候我们都会将要传输 ...
- 项目实战-解决AES(java.security.InvalidKeyException: Illegal key size)
异常: java.security.InvalidKeyException: Illegal key size 今天在做接口测试的时候遇到个异常: java.security.InvalidKeyEx ...
- jdk 1.8 java.policy,JDK1.8 导致系统报错:java.security.InvalidKeyException:illegal Key Size
在使用JCE加密时,我们有时候会遇到这样的Exception: java.security.InvalidKeyException:illegal Key Size 要解决这个报错,首先,我们需要知道 ...
最新文章
- 《转》Java Process应用之惑
- GPS定位精度单位CEP、RMS、2DRMS
- Git冲突与解决方法【转】
- Ajax请求中的async:false/true的作用
- 在HTML文件中加载js
- PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
- linux shell 特定变量参数说明
- 【HDU - 6574】Rng(概率,古典概型)
- 全连接层的作用是什么?
- spring 全依赖
- 信息图表是如何炼成的之一:媒体使用情况
- 腾讯x5内核(TBS)简单集成封装
- 理清contactsprovider
- 工商银行支付接口开发Java
- 百度站内搜索使用教程
- 三分钟,带你了解PLM
- 一篇文章告诉你雅虎这20年经历了什么
- 题解 CF1395A 【Boboniu Likes to Color Balls】
- Windows 8 和 Office 15 截图泄漏(多图)
- 基于autojs7的亚丁号成语大家族辅助
热门文章
- 学计算机的管理层,毕业很吃香、高薪岗位多的4个专业,计算机科学上榜,你的专业呢...
- 一年增加 1.2w 星,Dapr 能否引领云原生中间件的未来?
- 无人机倾斜摄影技术在不动产项目中的实际运用
- 超详细的Mac重装系统教程!让重装系统变得简单起来!
- 动态规划挖金矿问题——python实现
- 核桃编程Delta Lake实时数仓应用实践
- Android开发之中文语音朗读
- css+div透明参数设置
- 山大往年自招计算机系试题,山大自招现场:考生笔试说“容易”体测喊“难”...
- 记录一次iPhone5s的iCloud bypass经历