在接口对接过程中,由于用到AES加密,经常会遇到java.security.InvalidKeyException: Illegal key size or default parameters异常。所以决定开个博客,专门记录一下。
由于美国对软件出口的管制,Java通过默认的policy文件来限制密钥长度。因此当密钥长度超过128位时,就会报java.security.InvalidKeyException: Illegal key size or default parameters异常。
所幸,Oracle在其官网有提供无政策限制的policy文件,只需下载并将其中的local_policy.jar和US_export_policy.jar两个jar包替换到%JAVA_HOME%\jre\lib\security\ 目录下,即可解决问题。不放心的同学可以先做好那两个jar包的备份。当然,你得找对你所用版本的java所在的目录,如果你的服务器上只有JRE环境,那就放到 %JRE_HOME%\lib\security\ 目录下。
官网下载地址:
- JDK8:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
- JDK7:http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/jce-7-download-432124.html
- JDK6:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
- JDK5:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
- JDK4:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#7503-jce-1.4.2-oth-JPR
相关推荐
当在Java环境中使用AES加密时遇到 `java.security.InvalidKeyException: Illegal key size or default parameter` 这个异常,通常意味着密钥的长度超过了Java安全策略所允许的最大值。具体来说: - **非法密钥大小...
为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行...然而,在使用256位密钥加解密的时候,如果不进行特殊处理的话,往往会出现这个异常java.security.InvalidKeyException: Illegal key size。
如在加密过程中出现下面异常: java.security.InvalidKeyException:illegal Key Size 请将两个jar文件按下列操作完成: 如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件;如果安装了...
使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的...
使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的...
问题一:应用抛出 InvalidKeyException: Illegal key size or default parameters 解决方法:下载 ,将其内容解压到$JAVA_HOME/jre/lib/security/ 问题 2:Eclipse 显示类似“访问限制:方法...”的警告 解决方法...