博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java.security.InvalidKeyException: Illegal key size or default parameters
阅读量:6327 次
发布时间:2019-06-22

本文共 1987 字,大约阅读时间需要 6 分钟。

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

产生错误原因:为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使用。我们在使用AES加解密的时候,在遇到128位密钥加解密的时候,没有进行什么特殊处理;然而,在使用256位密钥加解密的时候,如果不进行特殊处理的话,往往会出现这个异常java.security.InvalidKeyException: Illegal key size。

为什么会产生这样的错误?

我们做Java开发,或是Android开发,都会先在电脑上安装JDK(Java Development Kit) 并配置环境变量,JDK也就是 Java 语言的软件开发工具包,JDK中包含有JRE(Java Runtime Environment,即:Java运行环境),JRE中包括Java虚拟机(Java Virtual Machine)、Java核心类库和支持文件,而我们今天要说的主角就在Java的核心类库中。在Java的核心类库中有一个JCE(Java Cryptography Extension),JCE是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现,所以这个是实现加密解密的重要类库。

在我们安装的JRE目录下有这样一个文件夹:%JAVE_HOME%\jre\lib\security(%JAVE_HOME%是自己电脑的Java路径,一版默认是:C:\Program Files\Java,具体看自己当时安装JDK和JRE时选择的路径是什么),其中包含有两个.jar文件:“local_policy.jar ”和“US_export_policy.jar”,也就是我们平时说的jar包,再通俗一点说就是Java中包含的类库(Sun公司的程序大牛封装的类库,供使用Java开发的程序员使用),这两个jar包就是我们JCE中的核心类库了。JRE中自带的“local_policy.jar ”和“US_export_policy.jar”是支持128位密钥的加密算法,而当我们要使用256位密钥算法的时候,已经超出它的范围,无法支持,所以才会报:“java.security.InvalidKeyException: Illegal key size or default parameters”的异常。那么我们怎么解决呢?

如何解决?

解决方案:去官方下载JCE无限制权限策略文件。

jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

jdk6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

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

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt

如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件。

如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。

具体下载、解压、替换步骤:

1.下载:根据自己使用的jdk版本进入对应的链接下载(我这里是jdk8)

2.解压:

 

3.替换

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security

4.如果不行就重启下软件,刷新下maven

原文链接:

转载于:https://www.cnblogs.com/mrjade/p/10886378.html

你可能感兴趣的文章
《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 2.6 享元模式...
查看>>
《Spark大数据处理:技术、应用与性能优化》——1.5 Spark的企业级应用
查看>>
Windows下搭建及配置Mantis缺陷管理工具
查看>>
云制造:智慧城市制造业的新模式和新手段
查看>>
客户努力度(CES):一套新型的客户服务标准
查看>>
Qt之OpenSSL
查看>>
《精通LabVIEW虚拟仪器程序设计与案例实现》一2.2 启动LabVIEW
查看>>
Mozilla Labs 已关闭
查看>>
《数据分析实战:基于EXCEL和SPSS系列工具的实践》——1.4 数据分析的流程
查看>>
Redis桌面客户端 Redis Studio
查看>>
《SAP入门经典(第4版•修订版)》——第3章 SAP技术基础知识 3.1 SAP技术101:SAP基础知识...
查看>>
Flash 真完了!Adobe 自己都不想要它
查看>>
《R的极客理想—工具篇》—— 2.1 R语言时间序列基础库zoo
查看>>
DirectX 将会被命名为 DirectX 12
查看>>
《MATLAB图像处理超级学习手册》一一第1章 MATLAB基础知识
查看>>
《区块链开发指南》一一1.4 脚本系统
查看>>
《计算机科学导论》一1.2 冯·诺依曼模型
查看>>
《JavaScript应用程序设计》一一2.11 多态函数
查看>>
LC3 初日见闻 + 阿里巴巴望京绿地中心一游
查看>>
《Adobe After Effects CC经典教程》——第2课 用特效和预设创建基本动画 2.1 开始...
查看>>