当遇到这个问题,首先查看你的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.jarUS_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相关推荐

  1. Illegal key size or default parameters

    用了一个加密算法 反正就是给个key+secret 加密成另外一段文字 不关心加密过程,但是之前都能加密成功,今天加密直接就报错了..Illegal key size or default param ...

  2. java.security.InvalidKeyException: Illegal key size or default parameters

    今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size or default parameters ...

  3. AES 加密256位 错误 java.security.InvalidKeyException: Illegal key size or default parameters

    Java发布的运行环境包中的加解密有一定的限制.比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件. 官方网站提供了JCE无限制权限策略文件的下载: JDK8的下载地址:  http: ...

  4. AES加密报错:Illegal key size or default parameters或希望支持32位密钥

    今天在接一个中·宣部文档时用到了AES128加密,对方给的密钥是32位的,方法写完运行时报该错误,如下: 问题原因jdk自带的加密包,不支持32位密钥加密,需要下载jar包替换掉 需要替换的jar包: ...

  5. java报错只有一个数字4,Java 报错 illegal Key Size

    推荐文章 Passwords are still the primary method of authentication today, in a form of something you know ...

  6. java.security.InvalidKeyException: Illegal key size

    来源:https://blog.csdn.net/dling8/article/details/84061948 今天在使用idea打包maven项目时,出现这个错误:java.security.In ...

  7. java.security.InvalidKeyException Illegal key size

    今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size.(测试也可能会出现这个问题)貌似是因为加密 ...

  8. 控制台报错:java.security.InvalidKeyException: Illegal key size

    在学习微信支付V3的时候启动项目报错java.security.InvalidKeyException: Illegal key size 原因是:数据代码在传输过程中的安全,很多时候我们都会将要传输 ...

  9. 项目实战-解决AES(java.security.InvalidKeyException: Illegal key size)

    异常: java.security.InvalidKeyException: Illegal key size 今天在做接口测试的时候遇到个异常: java.security.InvalidKeyEx ...

  10. jdk 1.8 java.policy,JDK1.8 导致系统报错:java.security.InvalidKeyException:illegal Key Size

    在使用JCE加密时,我们有时候会遇到这样的Exception: java.security.InvalidKeyException:illegal Key Size 要解决这个报错,首先,我们需要知道 ...

最新文章

  1. 《转》Java Process应用之惑
  2. GPS定位精度单位CEP、RMS、2DRMS
  3. Git冲突与解决方法【转】
  4. Ajax请求中的async:false/true的作用
  5. 在HTML文件中加载js
  6. PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
  7. linux shell 特定变量参数说明
  8. 【HDU - 6574】Rng(概率,古典概型)
  9. 全连接层的作用是什么?
  10. spring 全依赖
  11. 信息图表是如何炼成的之一:媒体使用情况
  12. 腾讯x5内核(TBS)简单集成封装
  13. 理清contactsprovider
  14. 工商银行支付接口开发Java
  15. 百度站内搜索使用教程
  16. 三分钟,带你了解PLM
  17. 一篇文章告诉你雅虎这20年经历了什么
  18. 题解 CF1395A 【Boboniu Likes to Color Balls】
  19. Windows 8 和 Office 15 截图泄漏(多图)
  20. 基于autojs7的亚丁号成语大家族辅助

热门文章

  1. 学计算机的管理层,毕业很吃香、高薪岗位多的4个专业,计算机科学上榜,你的专业呢...
  2. 一年增加 1.2w 星,Dapr 能否引领云原生中间件的未来?
  3. 无人机倾斜摄影技术在不动产项目中的实际运用
  4. 超详细的Mac重装系统教程!让重装系统变得简单起来!
  5. 动态规划挖金矿问题——python实现
  6. 核桃编程Delta Lake实时数仓应用实践
  7. Android开发之中文语音朗读
  8. css+div透明参数设置
  9. 山大往年自招计算机系试题,山大自招现场:考生笔试说“容易”体测喊“难”...
  10. 记录一次iPhone5s的iCloud bypass经历