local_policy.jar和US_export_policy.jar与Unlimited Strength Vs默认值不同。

在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开发工具包和Java SE运行时环境附带的Javaencryption扩展(JCE)策略文件允许使用强大但有限的encryption技术。

JDK网站上提供了这些文件的无限强度版本,表明对encryption优势没有限制,适用于符合条件的国家/地区的用户。 居住在符合条件的国家的用户可以下载无限制的强度版本,用无限强度的文件replace强大的encryptionjar文件。 问题

  1. 每个JDK包是否都附带了local_policy.jar和US_export_policy.jar?
  2. 默认local_policy.jar和US_export_policy.jar的限制是什么。 这是关键尺寸?
  3. 如果我需要使用128位密钥,是否需要使用Unlimited Strength Java Cryptography
    延期
  4. 有没有一种方法可以让这两个jar子在外部path上,并加载它。 因为我有更多的服务器,而不是在每个JDK中应付,所以我宁愿将其保留在中心位置。

Solutions Collecting From Web of "local_policy.jar和US_export_policy.jar与Unlimited Strength Vs默认值不同。"

每个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");来检查算法的最大大小int maxKeyLen = Cipher.getMaxAllowedKeyLength("AES");

如果我需要使用128位密钥,是否需要使用Unlimited Strength Java密码扩展

对于128位密钥加密,我不认为你需要无限强度的Java密码扩展罐。 默认的应该工作得很好。

有没有一种方法可以让这两个罐子在外部路径上,并加载它。 因为我有更多的服务器,而不是在每个JDK中应付,所以我宁愿将其保留在中心位置。

如上所述,如果您使用128位密钥进行加密,则不会发生这种情况,但是如果您使用的是较长的密钥(例如256),则需要获取无限强度罐,并将其替换为$JAVA_HOME/jre/lib/security 。 就像在JDK / JRE本身中一样,不能将它集中在分布式服务器的情况下。 您将需要在每台服务器上进行更换。

请参阅参考指南 。

另外如果你不想这样做,你可以参考下面的线程的替代品 –

如何避免在部署应用程序时安装“无限强度”JCE策略文件?

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

我已经在一篇文章中总结了一切。 你也可以参考 –

如何安装Java密码扩展(JCE)无限强度管辖权策略文件