Exception in thread "main" java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039) at javax.crypto.Cipher.implInit(Cipher.java:805) at javax.crypto.Cipher.chooseProvider(Cipher.java:864) at javax.crypto.Cipher.init(Cipher.java:1396) at javax.crypto.Cipher.init(Cipher.java:1327) at com.yuan.algorithmsexp.algorithms_aes_CBC.encrypt(algorithms_aes_CBC.java:53) at com.yuan.algorithmsexp.algorithms_aes_CBC.main(algorithms_aes_CBC.java:30)分析
- 这里我用的是jdk1.8的,在jdk10下面没问题
- 报错是因为用到了jdk sercurity
- jdk sercurity 使用的jar包 $JAVA_HOME/jre/lib/security/local_policy.jar 和 $JAVA_HOME/jre/lib/security/US_export_policy.jar
- $JAVA_HOME/jre/lib/security/local_policy.jar 和 $JAVA_HOME/jre/lib/security/US_export_policy.jar对技术出口的限制,限制了加密只有128bit,而没有限制的则有256bit
哎!贸易战争是无情的。但Oracle还是’很贴心’的再官网给我们提供了解决方案:
JDK6密码扩展无限制权限策略文件
JDK7密码扩展无限制权限策略文件
JDK8密码扩展无限制权限策略文件
最好先备份!!!最好先备份!!!最好先备份!!!
将两个jar文件放到%JDK_HOME%jrelibsecurity和%JRE_HOME%libsecurity下覆盖原来文件即可
但是Oracle需要注册,比较麻烦这里准备了快捷下载通道
JDK6密码扩展无限制权限策略文件
JDK7密码扩展无限制权限策略文件
JDK8密码扩展无限制权限策略文件



