为什么默认情况下不包含 JCE Unlimited Strength?
Why are the JCE Unlimited Strength not included by default?
设置
- Java 不提供对 JCE 无限强度策略文件的开箱即用支持
- 这会阻止用户使用广泛使用的加密标准中最大的密钥大小 AES-256
- 不包含策略文件会导致很多问题:
- Unexpected exceptions
- Unsatisfying workarounds:
- 只需安装它们
- 使用不同的实现
- 使用可能违反Java许可协议
的反射
- Breakage after JRE updates
- Confusion after installation
- And more!
- 所有这些噪音导致 and/or 错误的程序
问题
- 为什么不提供这些并像害群之马一样对待它们?
美国对密码技术的出口有限制:
https://en.wikipedia.org/wiki/Export_of_cryptography_from_the_United_States
他们曾经非常严格——密码学被归类为军火,你只能从美国和其他白名单国家下载全强度产品。
从那时起,限制已经放宽了很多,但仍然存在一些限制,而且功能强大的 JCE 不能像 JRE 一样在任何地方自由分发,所以它是一个单独的包。
- 事实证明,这并不是严格的加密货币出口法,而只是 no one got around to it yet。
- 事实上,it's been planned for a long time不必跳过这些障碍。
- 在Java9,仪式将被浓缩为one-liner:
Security.setProperty("crypto.policy", "unlimited");
现在 JDK
默认启用无限加密
JDK 使用 Java 加密扩展 (JCE) 权限策略文件来配置加密算法限制。以前,JDK 中的策略文件对各种算法进行了限制。此版本附带有限和无限管辖权政策文件,默认情况下无限制。可以通过 /lib/java.security 文件中的新 'crypto.policy' 安全性 属性 来控制该行为。有关此 属性.
的更多信息,请参阅该文件
参见:http://www.oracle.com/technetwork/java/javase/8u161-relnotes-4021379.html#JDK-8170157
设置
- Java 不提供对 JCE 无限强度策略文件的开箱即用支持
- 这会阻止用户使用广泛使用的加密标准中最大的密钥大小 AES-256
- 不包含策略文件会导致很多问题:
- Unexpected exceptions
- Unsatisfying workarounds:
- 只需安装它们
- 使用不同的实现
- 使用可能违反Java许可协议 的反射
- Breakage after JRE updates
- Confusion after installation
- And more!
- 所有这些噪音导致 and/or 错误的程序
问题
- 为什么不提供这些并像害群之马一样对待它们?
美国对密码技术的出口有限制:
https://en.wikipedia.org/wiki/Export_of_cryptography_from_the_United_States
他们曾经非常严格——密码学被归类为军火,你只能从美国和其他白名单国家下载全强度产品。
从那时起,限制已经放宽了很多,但仍然存在一些限制,而且功能强大的 JCE 不能像 JRE 一样在任何地方自由分发,所以它是一个单独的包。
- 事实证明,这并不是严格的加密货币出口法,而只是 no one got around to it yet。
- 事实上,it's been planned for a long time不必跳过这些障碍。
- 在Java9,仪式将被浓缩为one-liner:
Security.setProperty("crypto.policy", "unlimited");
现在 JDK
默认启用无限加密JDK 使用 Java 加密扩展 (JCE) 权限策略文件来配置加密算法限制。以前,JDK 中的策略文件对各种算法进行了限制。此版本附带有限和无限管辖权政策文件,默认情况下无限制。可以通过 /lib/java.security 文件中的新 'crypto.policy' 安全性 属性 来控制该行为。有关此 属性.
的更多信息,请参阅该文件参见:http://www.oracle.com/technetwork/java/javase/8u161-relnotes-4021379.html#JDK-8170157