今天換了重新裝了一個jdk,然后運行昨天還好好的企業微信工程,結果啟動的時候就給我報了這么個錯:
java.security.InvalidKeyException: Illegal key size
異常解讀:
不合法的密鑰長度。原因是jdk安裝時自帶的JCE策略文件時受限的, 需要將其替換為 JCE無限制權限策略文件。
背景:
由於美國政策的原因,強加密技術是不允許出口給某些國家,所以sun只能在jdk里面實現一些加密,甚至加密強度比較弱,比如AES的密鑰只允許128位,為了解鎖限制只能下載其他的實現類去替換jdk默認的security provider (源自:https://www.oschina.net/question/1268304_2158131 里的回答)
解決方法:
(1)下載策略文件
下載地址:JCE6 官網(http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html)
JCE7 官網(http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html)
根據JDK版本,下載相應版本的JCE無限制權限策略文件,下載后解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。
(2)替換掉受限的策略文件
如果安裝了JRE,將兩個jar文件放到%JRE_HOME%\lib\security目錄下覆蓋原來的文件;
如果安裝了JDK,將兩個jar文件放到%JDK_HOME%\jre\lib\security目錄下覆蓋原來文件