全名叫Unlimited Strength Java(TM) Cryptography Extension (JCE) Policy Files for the Java(TM) Platform。本质是Java的policy文件(Java policy 相关请参见我的其他博文)。一般JDK内置的policy文件会对加密算法所使用的KEY的长度有所限制,一般限制在128bits(Triple-DES和RSA除外)。所以我们需要部署Unlimited Strength JCE Policy文件,来解开限制。
现象
我们可以用如下代码来做个小测试。
KeyGenerator keyGen = KeyGenerator.getInstance("AES"); keyGen.init(256); SecretKey sk = keyGen.generateKey(); byte[] rawKey = sk.getEncoded(); KEY = new SecretKeySpec(rawKey, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, KEY);
如果执行后,一般会发现如下异常。
Exception in thread "main" java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
接着,请修改密钥长度至128bits。如果没有InvalidKeyException异常抛出,那么问题一般就是密钥的长度受限于默认的policy文件。
keyGen.init(128);
安装Unrestricted Policy Files
访问JDK下载页面,一般来说,你可以在这个页面上找到一个名为“Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE”的链接。比如对应JDK8的下载链接:单击。
下载下来的文件是zip格式,解压缩后,可以看到2个Jar包和README。请按照readme文件的内容进行安装。
验证Policy文件是否安装成功
执行下面的代码,没有异常抛出,即安装成功。
KeyGenerator keyGen = KeyGenerator.getInstance("AES"); keyGen.init(256); SecretKey sk = keyGen.generateKey(); byte[] rawKey = sk.getEncoded(); KEY = new SecretKeySpec(rawKey, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, KEY);
相关推荐
"Unlimited Strength Jurisdiction Policy Files"即为解除这些限制的政策文件,允许开发者使用更高强度的加密算法,例如256位的AES加密,这对于许多安全应用来说是必要的。 提供的三个压缩包子文件分别对应于Java的...
java加解密无限制包,适用于JDK 8 ,JRE 8 。java能支持大部分的算法,但是受到出口限制,密钥长度不能满足需求。不过可以通过覆盖权限文件local_poblicy.jar和US_export_policy.jar取消相应限制。
想下个jdk安全文件还真是难啊,过程太烦琐,想要么?赶紧下!~~ Unlimited Strength Jurisdiction Policy Files5.0 其中包含: local_policy.jar US_export_policy.jar
无限-jce-policy-jdk7 这是一个捆绑了的宝石,不能合法地重新分发。 安装 将此行添加到应用程序的 Gemfile 中: gem 'unlimited-jce-policy-jdk7' , github : 'travis-ci/unlimited-jce-policy-jdk7'
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download JDK7 AES加密遇到:Illegal key size or default parameters 报错替换后可解决 如果安装了JRE,将两个jar文件放到%JRE...
"jce_policy-6.7z"是一个包含Java 6 JCE无限制强度 Jurisdiction Policy Files的压缩包。 无限制强度Jurisdiction Policy Files是Java JCE的一个特别版本,它允许开发者使用任意长度的密钥,不受默认的密钥长度限制...
2. 将解压后得到的`jce.jar`和`local_policy.jar`文件复制到JDK的`jre/lib/security`目录下。 3. 如果系统中同时存在多个JDK版本,需要确认替换的是对应于Java 8的目录。 4. 重启任何依赖JCE的程序,以使更改生效。 ...
"Unlimited Strength Jurisdiction Policy Files" 是JCE的特殊版本,它移除了对加密强度的任何限制。这意味着使用这个版本的JCE,开发者可以自由地使用任何强度的加密算法,这对于需要高安全性的应用,如金融、政府...
**JDK1.8在Linux上的安装指南** Java Development Kit(JDK)是开发和运行Java应用程序的基础,而JDK1.8是Oracle公司发布的Java平台标准版的一个重要版本。这个版本引入了许多新特性和改进,包括Lambda表达式、...
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7
"jce_policy-8.zip"中的内容可能是解除这种限制的无限强度Jurisdiction Policy Files。 在Java 8中,为了支持不受限的密钥长度,你需要替换JRE的安全提供者中的默认策略文件。"jce_policy-8"这个子文件很可能是包含...
标题中的"jurisdiction_policy_files_ibm.zip"是一个与IBM服务器相关的安全策略文件压缩包,主要用于处理微信消息的验证和加密解密。这个压缩包特别指出它适用于IBM的服务器环境,特别是Websphere应用服务器,但并未...
- **下载并安装Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files**:为了取消这些限制,可以下载适用于您Java版本的JCE Unlimited Strength Jurisdiction Policy Files,并按照...
要解除这些限制,开发者可以选择替换这些策略文件,使用不受限的版本,如Oracle提供的“无限制强度 Jurisdiction Policy Files”。这样,无论在哪个地区运行,Java应用程序都可以利用更强的加密算法来保护数据的安全...
解决Illegal key size or default parameters报错问题;...Oracle在其官方网站上提供了无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files),只需要将其部署在JRE环境中,就可以解决限制问题。
为了解决这个问题,Oracle提供了一组无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files)。这些文件移除了对加密强度的限制,允许开发者使用更强大的加密算法和更大的密钥长度。对于不同版本的JDK...
JCE Unlimited Strength Jurisdiction Policy Files; Illegal key size or default parameters密钥长度受限; 根据您jdk对应的版本替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_...
在标准Java实现中,默认只支持128位的密钥长度,这是因为出于安全考虑,Java Cryptography Extension (JCE)有一个叫做“无限强度Jurisdiction Policy Files”的限制。这个限制在某些版本的Java中会禁止使用超过128位...
对于JDK 8,你需要下载“Unlimited Strength Jurisdiction Policy Files”。 2. **解压并替换文件**:将下载的zip文件解压,找到`local_policy.jar`和`US_export_policy.jar`两个文件。这两个文件分别位于JDK的`jre...
如果想要在Java中使用更长的密钥,比如256位,就需要安装额外的不受限制的加密策略文件,这通常被称为“Unlimited Strength Jurisdiction Policy Files”。 标签“安全”表明这个话题与信息安全有关,加密是保护...