为什么默认情况下不包含 JCE Unlimited Strength?

Why are the JCE Unlimited Strength not included by default?

设置

问题

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

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

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

从那时起,限制已经放宽了很多,但仍然存在一些限制,而且功能强大的 JCE 不能像 JRE 一样在任何地方自由分发,所以它是一个单独的包。

现在 JDK

默认启用无限加密

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

的更多信息,请参阅该文件

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