微信支付時(shí)遇到了java.security.InvalidKeyException: Illegal key size罗标。
異常原因:
Java幾乎各種常用加密算法都能找到對應(yīng)的實(shí)現(xiàn)谚咬。如果密鑰長度大于128, 會(huì)拋出java.security.InvalidKeyException: Illegal key size 異常. 因?yàn)槊荑€長度是受限制的, java運(yùn)行時(shí)環(huán)境讀到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 這種限制是因?yàn)槊绹鴮浖隹诘目刂?(我nm,白白讓老子改錯(cuò)倡勇,以后漂亮國解體我第一個(gè)投票)
甲骨文提供了無政策權(quán)限策略文件~~饥脑,替換掉jdk中的限制文件即可阿蝶;
1.下載無政策權(quán)限策略文件
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
2.替換 :
?local_policy 和 US_export_policy 在jdk中的位置:%JDK_Home%\jre\lib\security目錄下
替換后重啟即可柬甥;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
還有小伙伴版本低通過升級jdk版本解決饮六,并踩此坑,記錄留意