【Java加密】(一)JCE配置加密算法强度不受限授权的安装

1 篇文章 0 订阅

【前言】Java加解密系列,根据实际开发进度,不定期更新

【下载】在Oracle网站上搜索, Unlimited Strength Jurisdiction Policy Files 这个关键字,然后按照所安装的JDK版本选择对应的授权文件,比如我的是JDK8,就选择了这个


【安装】
下载完这个zip包后,里面有两个jar包和一个readme.txt文件。

按照README.txt里的说明进行安装。注意区别开发环境用的JRE在JDK里面,运行环境的JRE是单独的环境。在我的Mac上,JRE是装在JDK里的,对应路径是 /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre


进入到授权文件安装的目录下

/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/security能够查看到默认是有local_policy.jar 和  US_export_policy.jar的,改个名字保存一下。


然后复制压缩包里的文件到/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/security目录下,这样就安装完成了。


【验证】

可以用下面的程序验证一下

 public static void securityVerify() throws Exception {
        byte[]     data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
     // create a 64 bit secret key from raw bytes
        SecretKey key64 = new SecretKeySpec(
                   new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 },
                   "Blowfish");
        
     // create a cipher and attempt to encrypt the data block with our key
        Cipher     c = Cipher.getInstance("Blowfish/ECB/NoPadding");
        c.init(Cipher.ENCRYPT_MODE, key64);
        c.doFinal(data);
        System.out.println("64 bit test: passed");
        
     // create a 192 bit secret key from raw bytes
        SecretKey key192 = new SecretKeySpec(
                    new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
                                 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
                                 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 },
                    "Blowfish");

        // now try encrypting with the larger key
        c.init(Cipher.ENCRYPT_MODE, key192);
        c.doFinal(data);

        System.out.println("192 bit test: passed");

        System.out.println("Tests completed");
    }

如果是默认配置,

返回类似

64 bit test: passed
Exception in thread "main" java.lang.SecurityException:
        Unsupported keysize or algorithm parameters
        at javax.crypto.Cipher.init(...)
        at chapter1.SimplePolicyTest.main(SimplePolicyTest.java:38)

如果是替换后,返回

64 bit test: passed
192 bit test: passed
Tests completed



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值