提问者:小点点

为什么默认情况下不包括JCE无限力量?


    < li>Java不提供对JCE无限强度策略文件的现成支持 < li >这可防止用户使用AES-256,这是广泛使用的加密标准中最大的密钥长度 < li >不包括策略文件会导致许多问题: < ul > < li >意外异常 < li >不令人满意的解决方法: < ul > < li >安装它们即可 < li >使用不同的实现方式 < li >使用可能违反Java许可协议的反射
  • 为什么这些没有像害群之马一样提供和对待?

共3个答案

匿名用户

  • 事实证明,这不是严格的加密出口法,只是还没有人抽出时间来。
  • 事实上,很久以前就计划好了,不必跳过这些环。
  • 在Java9中,仪式将被浓缩成一行:Security. setProperty("cryp.Policy","无限");

匿名用户

现在,JDK默认启用无限加密

JDK 使用 Java 加密扩展 (JCE) 管辖权策略文件来配置加密算法限制。以前,JDK 中的策略文件对各种算法进行了限制。此版本附带有限和无限管辖权策略文件,默认为无限制。该行为可以通过 /lib/java.security 文件中的新“crypto.policy”安全属性进行控制。有关此属性的更多信息,请参阅该文件。

请参阅:http://www.oracle.com/technetwork/java/javase/8u161-relnotes-4021379.html#JDK-8170157

匿名用户

美国对密码技术的出口有限制:

https://en.wikipedia.org/wiki/Export_of_cryptography_from_the_United_States

他们曾经非常严格 - 密码学被归类为弹药,你只能从美国和其他白名单国家下载全强度产品。

从那以后,限制已经放松了很多,但一些仍然存在,而且完整的JCE不能像JRE一样自由分布在任何地方,所以它是一个单独的包。