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