关于JDK8采坑JCE加密限制版本问题

Posted qlsty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JDK8采坑JCE加密限制版本问题相关的知识,希望对你有一定的参考价值。

关于JDK8采坑JCE加密限制版本问题

技术图片
0.3392019.04.28 14:55:21字数 375阅读 1,866

JDK8的加密策略存在限制版本和无限制版本,随着越来越多的第三方工具只支持 JDK8,业务环境中,发现有些方法会报异常:
1、使用AES加解密

java.security.InvalidKeyException: Illegal key size

2、安全性机制导致的访问https会报错:

Received fatal alert: handshake_failure; nested exception is javax.net.ssl.SSLHandshakeException:
Received fatal alert: handshake_failure,accessUrl

这是因为某些国家的进口管制限制,JDK默认的加解密有一定的限制。
比如默认不允许 256 位密钥的 AES 加解密,解决方法就下载官方JCE无限制强度加密策略文件,覆盖即可。
官方网站提供了JCE无限制权限策略文件的下载:
JDK6的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

JDK7的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

但从Java 1.8.0_151和1.8.0_152开始,为JVM启用无限制强度管辖策略 有了一种新的更简单的方法。如果不启用此功能,则不能使用AES-256:
在 jre/lib/security 文件夹中查找文件 java.security,现在用文本编辑器打开java.security,并找到定义java安全性属性crypto.policy的行,它可以有两个值limited或unlimited - 默认值是limited。将其设置为:

crypto.policy=unlimited

现在重新启动指向JVM的Java应用程序即可。

 

以上是关于关于JDK8采坑JCE加密限制版本问题的主要内容,如果未能解决你的问题,请参考以下文章

jdk8的加密 jdk11不支持

Java + 腾讯邮箱 SSL加密问题 重要通知

wsl安装jdk

wsl安装jdk

(java加密解密)如何实现JCE接口的各种算法??

微服务SpringCloud—Config Server对称加密