在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运行时环境附带的Java密码扩展(JCE)策略文件允许使用强而有限的加密。
JDK网站上为居住在符合条件的国家/地区的人提供了这些文件的无限制强度版本,表明对加密强度没有限制。居住在符合条件的国家/地区的人可以下载无限强度版本,并用无限强度文件替换强密码罐。
问题
是否每个JDK捆绑包都随附了local_policy.jar和US_export_policy.jar?
默认local_policy.jar和US_export_policy.jar中的限制是什么?是密钥大小吗?
如果我需要使用128位密钥,是否需要进行无限强度Java密码学
延期
有没有办法将这两个罐子放在外部路径中并加载它。因为我有50台服务器,而不是每个JDK都应对,所以我宁愿将其维护在一个中央位置。
Does every JDK bundle comes with local_policy.jar and US_export_policy.jar ?
对。自1.4版本以来,JCE已集成到Java 2 SDK中。
What is the limitation in default local_policy.jar and US_export_policy.jar. Is it the key size ?
是的,它是密钥大小。我的东西超过128位是不允许的。您可以使用int maxKeyLen = Cipher.getMaxAllowedKeyLength("AES");检查算法的最大大小
If I need to use 128 bit keys does it required to go for Unlimited Strength Java Cryptography Extension
对于128位密钥加密,我认为您不需要无限强度Java密码扩展罐。默认的应该可以正常工作。
Is there a way I can keep these two jars in external path and load it. Because I have more 50 servers rather than coping in each JDK I would prefer to maintain it in a central place.
如上所述,如果您使用128位密钥进行加密,则不会发生这种情况,但是如果您使用更长的密钥(例如256),则需要获得无限强度的jar并将其替换为$JAVA_HOME/jre/lib/security。由于它在JDK / JRE本身中,因此,如果没有分布式服务器,就无法使其集中化。您将需要在每台服务器上更换它。
请参考oracles参考指南。
另外,如果您不想这样做,则可以参考以下主题的替代方法-
部署应用程序时如何避免安装"无限强度" JCE策略文件?
反射是线程中用户的解决方法。尽管我不建议您查看它。
我已经在帖子中总结了所有内容。您也可以参考-
如何安装Java密码学扩展(JCE)无限强度管辖权策略文件
如果它是具有许多JVM实例的单服务器,您是否认为Security.jar文件可以使用Linux Symbolic集中管理?