栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java加解密security目录-策略文件 local

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java加解密security目录-策略文件 local

       local_policy.jar问题经常发生在AES、DES加密上,当使用JDK的加密工具进行加解密时,可能会因为密钥长度限制,不能使用大于128位的密钥。本文重在理解限制与不限制体现在什么地方,不适合寻找加解密demo的同学。

       当项目中存在与此加解密相关的功能时需要查看当前版本jdk使用什么样的密钥限制策略。

默认限制密钥长度的jdk情况说明

      并非所有的jdk都有此限制,诸如jdk8u141 有此问题,因为默认情况下jre/lib/security目录下的local_policy.jar中是限制密钥长度的,

 

 在此状态下进行加解密会报如下异常,

Exception in thread "main" java.security.InvalidKeyException: Illegal key size or default parameters
	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1025)
	at javax.crypto.Cipher.implInit(Cipher.java:800)
	at javax.crypto.Cipher.chooseProvider(Cipher.java:863)
	at javax.crypto.Cipher.init(Cipher.java:1248)
	at javax.crypto.Cipher.init(Cipher.java:1185)

默认不限制密钥长度的jdk情况说明

但像jdk8u191中便没有此问题,请看jre/lib/security目录内容,没有local_policy.jar, US_export_policy.jar,多了一个policy目录,其下是两种限制策略:limited, unlimited,

 

 在默认情况下,jdk8u191 AES加解密密钥长度不限制,使用的是jre/lib/security/unlimited目录中的策略文件。其策略机制为:

  1. 如果java.security文件中配置了crypto.policy,会使用配置的机制,只允许两个值limited | unlimited,如果配置错误,则会报异常;
  2. 如果java.security文件中没有配置crypto.policy,那么会像jdk之前版本一样,加载jre/lib/security目录下的local_policy.jar, US_export_policy.jar,并使用其代表的策略;
  3. 如果java.security文件中没有配置crypto.policy并且jre/lib/security目录下没有local_policy.jar, US_export_policy.jar,那么会启用默认不限制密钥长度机制。

答疑解惑

限制与不限制的区别

区别体现在local_policy.jar的策略文件内容上,见下图,

US_export_policy.jar作用

    目前作用不明,根据查看limited中的US_export_policy.jar以及unlimited中的US_export_policy.jar,发现内容完全一致。且经过测试,限制与不限制仅体现在local_policy.jar的不同。不过,US_export_policy.jar文件却不可缺失,否则在类加载阶段会报异常。

是否替换掉文件后能够自动生效

      经过测试,local_policy.jar文件虽然可以在JVM运行时替换,但由于文件内容是在类加载阶段加载的,因此即便替换了local_policy.jar文件也无法生效,必须重启JVM。

AES算法支持的密钥长度

      虽说可以通过policy文件不限制密钥长度,但密钥长度却也并非真正无限制,AES算法的密钥长度只能是16或24或32个字符(即16或24或32个字节),

 在default_local.policy文件中写的128位指二进制位数,并非字符数,按照AES支持的字节数,在限制策略下,AES密钥只允许16个字符,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号