java.security.InvalidKeyException: Illegal key size
來源:https://blog.csdn.net/dling8/article/details/84061948
今天在使用idea打包maven項目時,出現(xiàn)這個錯誤:java.security.InvalidKeyException: Illegal key size。(測試也可能會出現(xiàn)這個問題)貌似是因為加密出現(xiàn)了問題。
產(chǎn)生錯誤原因:為了數(shù)據(jù)代碼在傳輸過程中的安全,很多時候我們都會將要傳輸?shù)臄?shù)據(jù)進(jìn)行加密,然后等對方拿到后再解密使用。我們在使用AES加解密的時候,在遇到128位密鑰加解密的時候,沒有進(jìn)行什么特殊處理;然而,在使用256位密鑰加解密的時候,如果不進(jìn)行特殊處理的話,往往會出現(xiàn)這個異常java.security.InvalidKeyException: Illegal key size。
為什么會產(chǎn)生這樣的錯誤?
我們做Java開發(fā),或是Android開發(fā),都會先在電腦上安裝JDK(Java Development Kit) 并配置環(huán)境變量,JDK也就是 Java 語言的軟件開發(fā)工具包,JDK中包含有JRE(Java Runtime Environment,即:Java運行環(huán)境),JRE中包括Java虛擬機(jī)(Java Virtual Machine)、Java核心類庫和支持文件,而我們今天要說的主角就在Java的核心類庫中。在Java的核心類庫中有一個JCE(Java Cryptography Extension),JCE是一組包,它們提供用于加密、密鑰生成和協(xié)商以及 Message Authentication Code(MAC)算法的框架和實現(xiàn),所以這個是實現(xiàn)加密解密的重要類庫。
在我們安裝的JRE目錄下有這樣一個文件夾:%JAVE_HOME%\jre\lib\security(%JAVE_HOME%是自己電腦的Java路徑,一版默認(rèn)是:C:\Program Files\Java,具體看自己當(dāng)時安裝JDK和JRE時選擇的路徑是什么),其中包含有兩個.jar文件:“l(fā)ocal_policy.jar ”和“US_export_policy.jar”,也就是我們平時說的jar包,再通俗一點說就是Java中包含的類庫(Sun公司的程序大牛封裝的類庫,供使用Java開發(fā)的程序員使用),這兩個jar包就是我們JCE中的核心類庫了。JRE中自帶的“l(fā)ocal_policy.jar ”和“US_export_policy.jar”是支持128位密鑰的加密算法,而當(dāng)我們要使用256位密鑰算法的時候,已經(jīng)超出它的范圍,無法支持,所以才會報:“java.security.InvalidKeyException: Illegal key size or default parameters”的異常。那么我們怎么解決呢?
如何解決?
解決方案:去官方下載JCE無限制權(quán)限策略文件。
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.下載:根據(jù)自己使用的jdk版本進(jìn)入對應(yīng)的鏈接下載(我這里是jdk8)
2.解壓:
3.替換:(原來的2個jar包你可以備份下)
?4.如果不行就重啟下軟件,刷新下maven
原文:https://blog.csdn.net/dafeige8/article/details/76019911?
原文:https://www.cnblogs.com/lilinzhiyu/p/8024100.html
————————————————
?
總結(jié)
以上是生活随笔為你收集整理的java.security.InvalidKeyException: Illegal key size的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机房的分类,雅思词汇分类积累之计算机
- 下一篇: JPA EntityManagers,事