local_policy.jar和US_export_policy.jar与Unlimited Strength Vs Default不同。

时间:2014-09-21 13:57:51

标签: java linux jce

在java平台文档http://www.oracle.com/technetwork/java/javase/jrereadme-182762.html中。关于

的评论

/lib/security/local_policy.jar   /lib/security/US_export_policy.jar


无限强度Java密码术扩展

由于某些国家/地区的导入控制限制,Java SE Development Kit和Java SE Runtime Environment附带的Java Cryptography Extension(JCE)策略文件允许使用强大但有限的加密。

对于居住在符合条件的国家/地区的用户,JDK网站上提供了这些文件的无限强度版本,表明对加密强度没有限制。那些居住在符合条件的国家/地区的人可以下载无限强度版本,并使用无限强度文件替换强加密jar文件。 问题

  1. 每个JDK包都附带local_policy.jar和US_export_policy.jar吗?
  2. 默认local_policy.jar和US_export_policy.jar的限制是什么。这是关键尺寸吗?
  3. 如果我需要使用128位密钥,则需要使用无限强度Java密码术 扩展
  4. 有没有办法可以将这两个罐子保存在外部路径中并加载它。因为我有更多50台服务器而不是每台JDK,我宁愿将它保存在一个中心位置。

1 个答案:

答案 0 :(得分:15)

  

每个JDK捆绑包都附带local_policy.jar和US_export_policy.jar吗?

烨。自1.4发布以来,JCE已集成到Java 2 SDK中。

  

默认local_policy.jar和US_export_policy.jar的限制是什么。这是关键尺寸吗?

是的,这是关键尺寸。我不允许128位以上的东西。您可以使用int maxKeyLen = Cipher.getMaxAllowedKeyLength("AES");

检查算法的最大大小
  

如果我需要使用128位密钥,则需要使用Unlimited Strength Java Cryptography Extension

对于128位密钥加密,我认为你不需要Unlimited Strength Java Cryptography Extension jar。默认的应该可以正常工作。

  

有没有办法可以将这两个罐子保存在外部路径中并加载它。因为我有更多50台服务器而不是每台JDK,我宁愿将它保存在一个中心位置。

如上所述,如果您使用128位密钥进行加密,则不应出现此情况,但如果您使用更长的密钥(例如256),则需要获得无限强度的jar并在$JAVA_HOME/jre/lib/security中替换它们。与JDK / JRE本身一样,如果不是分布式服务器,则无法使其集中化。您需要在每台服务器上更换它。

参考oracles reference guide

此外,如果您不想这样做,您可以参考以下主题寻找替代方案 -

How to avoid installing “Unlimited Strength” JCE policy files when deploying an application?

反射是线程中的用户作为解决方法。虽然我不推荐你,但你可以看看它。

我在帖子中总结了一切。你也可以参考 -

How to install Java Cryptography Extension (JCE) unlimited strength jurisdiction policy files