`

Jurisdiction Policy Files

阅读更多

全名叫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*..)

 接着,请修改密钥长度至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);

 

原理

解开部署的2个Jar包,2个包内都有一个policy文件,内容如下:
grant {
// There is no restriction to any algorithms.
permission javax.crypto.CryptoAllPermission;
};
 真相大白。

 

 

 

分享到:
评论

相关推荐

    Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files

    "Unlimited Strength Jurisdiction Policy Files"即为解除这些限制的政策文件,允许开发者使用更高强度的加密算法,例如256位的AES加密,这对于许多安全应用来说是必要的。 提供的三个压缩包子文件分别对应于Java的...

    Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8

    java加解密无限制包,适用于JDK 8 ,JRE 8 。java能支持大部分的算法,但是受到出口限制,密钥长度不能满足需求。不过可以通过覆盖权限文件local_poblicy.jar和US_export_policy.jar取消相应限制。

    Unlimited Strength Jurisdiction Policy Files5.0

    想下个jdk安全文件还真是难啊,过程太烦琐,想要么?赶紧下!~~ Unlimited Strength Jurisdiction Policy Files5.0 其中包含: local_policy.jar US_export_policy.jar

    unlimited-jce-policy-jdk7:这是 JCE Unlimited Strength Jurisdiction Policy Files 7 in a gem!

    无限-jce-policy-jdk7 这是一个捆绑了的宝石,不能合法地重新分发。 安装 将此行添加到应用程序的 Gemfile 中: gem 'unlimited-jce-policy-jdk7' , github : 'travis-ci/unlimited-jce-policy-jdk7'

    JDK7_Extension_UnlimitedJCEPolicyJDK7.zip

    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

    "jce_policy-6.7z"是一个包含Java 6 JCE无限制强度 Jurisdiction Policy Files的压缩包。 无限制强度Jurisdiction Policy Files是Java JCE的一个特别版本,它允许开发者使用任意长度的密钥,不受默认的密钥长度限制...

    UnlimitedJCEPolicyJDK8.rar

    2. 将解压后得到的`jce.jar`和`local_policy.jar`文件复制到JDK的`jre/lib/security`目录下。 3. 如果系统中同时存在多个JDK版本,需要确认替换的是对应于Java 8的目录。 4. 重启任何依赖JCE的程序,以使更改生效。 ...

    Java Cryptography Extension (JCE)

    "Unlimited Strength Jurisdiction Policy Files" 是JCE的特殊版本,它移除了对加密强度的任何限制。这意味着使用这个版本的JCE,开发者可以自由地使用任何强度的加密算法,这对于需要高安全性的应用,如金融、政府...

    JDK1.8 Linux安装包

    **JDK1.8在Linux上的安装指南** Java Development Kit(JDK)是开发和运行Java应用程序的基础,而JDK1.8是Oracle公司发布的Java平台标准版的一个重要版本。这个版本引入了许多新特性和改进,包括Lambda表达式、...

    jce_policy-67.rar

    Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7

    jce_policy-8.zip

    "jce_policy-8.zip"中的内容可能是解除这种限制的无限强度Jurisdiction Policy Files。 在Java 8中,为了支持不受限的密钥长度,你需要替换JRE的安全提供者中的默认策略文件。"jce_policy-8"这个子文件很可能是包含...

    jurisdiction_policy_files_ibm.zip

    标题中的"jurisdiction_policy_files_ibm.zip"是一个与IBM服务器相关的安全策略文件压缩包,主要用于处理微信消息的验证和加密解密。这个压缩包特别指出它适用于IBM的服务器环境,特别是Websphere应用服务器,但并未...

    AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter

    - **下载并安装Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files**:为了取消这些限制,可以下载适用于您Java版本的JCE Unlimited Strength Jurisdiction Policy Files,并按照...

    Java JCE 出口限制文件

    要解除这些限制,开发者可以选择替换这些策略文件,使用不受限的版本,如Oracle提供的“无限制强度 Jurisdiction Policy Files”。这样,无论在哪个地区运行,Java应用程序都可以利用更强的加密算法来保护数据的安全...

    oracle-jce-policy-666

    解决Illegal key size or default parameters报错问题;...Oracle在其官方网站上提供了无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files),只需要将其部署在JRE环境中,就可以解决限制问题。

    jdk解密问题1

    为了解决这个问题,Oracle提供了一组无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files)。这些文件移除了对加密强度的限制,允许开发者使用更强大的加密算法和更大的密钥长度。对于不同版本的JDK...

    JCE jar包 jdk1.6 - jdk1.8

    JCE Unlimited Strength Jurisdiction Policy Files; Illegal key size or default parameters密钥长度受限; 根据您jdk对应的版本替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_...

    java Aes 192 256加密,附jar 说明 AesUtil

    在标准Java实现中,默认只支持128位的密钥长度,这是因为出于安全考虑,Java Cryptography Extension (JCE)有一个叫做“无限强度Jurisdiction Policy Files”的限制。这个限制在某些版本的Java中会禁止使用超过128位...

    jdk8解除aes加密限制.zip

    对于JDK 8,你需要下载“Unlimited Strength Jurisdiction Policy Files”。 2. **解压并替换文件**:将下载的zip文件解压,找到`local_policy.jar`和`US_export_policy.jar`两个文件。这两个文件分别位于JDK的`jre...

    支持32位密钥的AES加解密

    如果想要在Java中使用更长的密钥,比如256位,就需要安装额外的不受限制的加密策略文件,这通常被称为“Unlimited Strength Jurisdiction Policy Files”。 标签“安全”表明这个话题与信息安全有关,加密是保护...

Global site tag (gtag.js) - Google Analytics