设置
- Java没有为JCE Unlimited Strength策略文件提供开箱即用的支持
- 这会阻止用户使用AES-256,一个广泛使用的加密标准中最大的密钥大小
- 不包括策略文件会导致很多问题:
- 意外异常
- 不能令人满意的解决方法:
- 只需安装它们
- 使用不同的实现
- 使用可能违反Java许可协议的反射
- JRE更新后的故障
- 安装后的混淆
- 更多问题!
- 所有这些噪音都会导致程序出现故障和/或有缺陷
问题
- 为什么这些不被提供并被视为黑羊?
sed -i 's/^#crypto.policy=unlimited/crypto.policy=unlimited/' $JAVA_HOME/jre/lib/security/java.security
- joelhardiJDK现在默认启用了不限制的加密功能
JDK使用Java Cryptography Extension (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
他们曾经非常严格--密码学被归类为军火,只能从美国和其他白名单国家下载完整强度的产品。