JDK1.8 導致系統報錯:java.security.InvalidKeyException:illegal Key Size


Java幾乎各種常用加密算法都能找到對應的實現。因為美國的出口限制,Sun通過權限文件(local_policy.jar、US_export_policy.jar)做了相應限制。因此存在一些問題

jdk1.8 JCE無限制權限策略文件下載地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

參考文章:https://github.com/spring-projects/spring-security/issues/3118

在使用JCE加密時,我們有時候會遇到這樣的Exception

java.security.InvalidKeyException:illegal Key Size 

要解決這個報錯,首先,我們需要知道其原因

這是因為用到了jdk sercurity, 而jdk sercurity 使用的jar包 $JAVA_HOME/lib/security/local_policy.jar 和 $JAVA_HOME/jre6_64/lib/security/US_export_policy.jar中有對技術出口的限制【”萬惡“的美帝啊】,加密只有128bit,而沒有限制的則有256bit.

那么既然人家已經限制了我們 ,我們怎么辦呢 ,甲骨文還是很貼心的,在官網給我們提供了解決方案,接下來就是重頭戲了!!!

解決方案

首先你要明確自己的jdk版本  是1.6  還是 1.7 亦或者 1.8 

我是1.8,這里用1.8舉例 , 其他都是一樣的

解決步驟:

1、前往甲骨文官網下載  JCE無限制權限策略文件

也可以直接在網上搜索下面圖中文件名

【注意:文件名如上圖所示    下載的版本一定要和當前你用的jdk一致

圖中由左至右依次為  jdk1.6      jdk1.8     jdk1.7  的JCE無限制權限策略文件】

懶得找的朋友可以在我的csdn資源里下載,這里附上鏈接

點擊進入下載頁面

2、下載下來后

對文件進行解壓發現其中有兩個jar包,將其復制

3、前往你當前使用jdk的安裝目錄

復制並覆蓋%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar 

【注意:覆蓋之前最好將原來的local_policy.jar 和 US_export_policy.jar 備份,原因大家都懂】

4、最后一步啦

重新啟動你的tomcat,如果不出意外,你會驚喜的發現,剛剛的報錯沒有啦!!!!

 

下載無長度限制的 jce_policy-8

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

注意需下載與JDK版本相對應的JCE,解壓后替換掉放到${JAVA_HOME}/jre/lib/security目錄下的兩個jar包  local_policy.jar 和 US_export_policy.jar

 

 

 

 

轉載於:http://api.crap.cn/static/help/154090390538601000274.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM