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

文章目录

          • 一、解决方案1
            • 1. 调研
            • 2. 常见的异常
            • 3. 安全性机制导致的访问https会报错
            • 4. 解决方案
            • 5. 操作流程
            • 6. 移动jar配置策略
          • 二、解决方案2
            • 2.1. 声明
            • 2.2. 编辑策略文件
            • 2.3. 修改默认属性

一、解决方案1

声明:jdk1.8已经经过线上环境使用

1. 调研

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

2. 常见的异常

1、使用AES加解密
异常1:
java.security.InvalidKeyException: Illegal key size or default parameters
异常2:
java.lang.SecurityException: JCE cannot authenticate the provider BC

3. 安全性机制导致的访问https会报错

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

这是因为某些国家的进口管制限制,JDK默认的加解密有一定的限制。

4. 解决方案

比如默认不允许 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

5. 操作流程

从官网下载jce策略文件(补丁包),进入到jdkjre\lib\security目录 ,覆盖原有策略文件

注:如果测试通过下面的第6步可以跳过,如果不行请继续操作

6. 移动jar配置策略

第1步:
把包bcprov-jdk15on-1.56.jar复制一个,放到linux的$JAVA_HOME/jre\lib\ext下面
在这里插入图片描述

第2步:
配置我的安全属性文件

vim /$JAVA_HOME/jre/lib/security/java.security
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
#下面这一行是我新添加的
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

在这里插入图片描述
重启服务再次测试

二、解决方案2
2.1. 声明

官网说从jdk的某个版本以后,只需简单配置策略文件配置即可

Java 1.8.0_151和1.8.0_152开始,为JVM启用无限制强度管辖策略 有了一种新的更简单的方法。如果不启用此功能,则不能使用AES-256:

2.2. 编辑策略文件
vim /$JAVA_HOME/jre/lib/security/java.security
2.3. 修改默认属性

在 jre/lib/security 文件夹中查找文件 java.security,现在用文本编辑器打开java.security,并找到定义java安全性属性crypto.policy的行,它可以有两个值limited或unlimited - 默认值是limited。将其设置为:

crypto.policy=unlimited

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速围观!云+X 案例评选榜单重磅出炉!

2019年11月,CSDN云计算强势开启“云X”案例征集活动,从先进性、拓展性、效益性等三个基本方向出发,深入展现云技术作用行业的突出优势。时隔2个月,通过广泛征集等方式,经过层层筛选,深入挖掘出跨行业、跨生…

uvm 形式验证_UVM基础

uvm_component与uvm_object1.几乎所有的类都派生于uvm_object,包括uvm_component。uvm_component有两大特性是uvm_object所没有的:一是通过在new的时候指定parent参数来形成一种树形的组织结构;二是有phase的自动执行特点。下图是常用的UVM继…

Table Store: 海量结构化数据实时备份实战

Table Store: 海量结构化数据实时备份实战 数据备份简介 在信息技术与数据管理领域,备份是指将文件系统或数据库系统中的数据加以复制,一旦发生灾难或者错误操作时,得以方便而及时地恢复系统的有效数据和正常运作。在实际备份过程中&#xf…

云+X案例展 | 电商零售类:云徙助力良品铺子「双11」

本案例由云徙投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。助力品牌制胜双十一的背后…

同样做前端,为何差距越来越大?

阿里妹导读:前端应用越来越复杂,技术框架不断变化,如何成为一位优秀的前端工程师,应对更大的挑战?今天,阿里前端技术专家会影结合实际工作经验,沉淀了五项重要方法,希望能对你的职业…

云+X案例展 | 民生类:必创科技助力打造智慧城市

本案例由必创科技投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。每当夜幕降临&#xf…

刚刚,阿里宣布开源Flutter应用框架Fish Redux!

3月5日,闲鱼宣布在GitHub上开源Fish Redux,Fish Redux是一个基于 Redux 数据管理的组装式 flutter 应用框架, 特别适用于构建中大型的复杂应用,它最显著的特征是 函数式的编程模型、可预测的状态管理、可插拔的组件体系、最佳的性…

谈谈结构体部分成员排序(重载的利用/sort)

涉及知识点: 1.重载运算符的知识 2.sort函数的使用 3.高精度排序 sort函数的用法? 通过面向百度GOOGLE编程的我,得知,sort的用法 sort函数详解(史上最完整QAQ) - AlvinZH - 博客园 对于数组而言&…

qt最大化和还原实现_研究进展 | 水生所关于细菌异化型硝酸盐还原成铵与反硝化脱氮两种途径抉择的分子调控机制研究取得进展...

在无氧和缺氧条件下,许多细菌可利用硝酸根和亚硝酸根作为电子受体进行无氧呼吸,包括异化型硝酸盐还原成铵(dissimilatory nitrate reduction (DNR) to ammonia,DNRA)和反硝化脱氮(denitrification)两种相互竞争的DNR途径,在氮元素…

中国科学院院士徐宗本:人工智能的基石是数学

来源:科学网 “人工智能的基石是数学,没有数学基础科学的支持,人工智能很难行稳致远。” 近日,由联合国教科文组织和中国工程院联合主办的联合国教科文组织国际工程科技知识中心2019国际高端研讨会上,中国科学院院士、…

MySQL运维实战 之 PHP访问MySQL你使用对了吗

大家都知道,slow query系统做的好不好,直接决定了解决slow query的效率问题 一个数据库管理平台,拥有一个好的slow query系统,基本上就拥有了解锁性能问题的钥匙 但是今天主要分享的并不是平台,而是在平台中看到的奇…

通过阿里云K8S Ingress Controller实现路由配置的动态更新

简介 在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,其几乎承载着集群内服务访问的所有流量。我们知道,Nginx Ingress Controller是Kubernetes社区很重要的一个子项目,其内部主要依托于高性能的负载均衡软件Ngi…

工作流实战_14_flowable_已办任务列表查询

项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频讲解地址 https://space.bilibili.com/485524575/channel/detail?cid94579 1、演示 2、代码 这里也是通过sql来查询的 SELECT DISTINCTt1.ID_ AS taskId,t1.NAME_ AS taskName,t2.FIRST_ AS…

SpringBoot使用prometheus监控

本文介绍SpringBoot如何使用Prometheus配合Grafana监控。 1.关于Prometheus Prometheus是一个根据应用的metrics来进行监控的开源工具。相信很多工程都在使用它来进行监控,有关详细介绍可以查看官网:https://prometheus.io/docs/introduction/overview/…

详解异构计算FPGA基础知识

戳蓝字“CSDN云计算”关注我们哦!作者 | 浩仔责编 | 阿秃随着云计算,大数据和人工智能技术应用,单靠CPU已经无法满足各行各业的算力需求。海量数据分析、机器学习和边缘计算等场景需要计算架构多样化,需要不同的处理器架构和GPU&a…

开发函数计算的正确姿势——使用 brotli 压缩大文件

大文件问题 函数计算对上传的 zip 代码包尺寸限制为 50M。某些场景中代码包中会超过这一限制,比如二进制 serverless-chrome 经过一番裁剪以后 ZIP 压缩包的体积为 43.4M,类似的还有 liboffice ,此外常见的还有机器学习训练的模型文件。 目…

流程变量的分组_01

项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av79774697/ 业务场景: 实际场景中,有可能我们的流程变量会比较多,如果一个变量就作为一条记录存储的话&a…

amd显卡风扇调节_中端游戏显卡新晋黑马,华硕ROG STRIX RX5600XT O6G GAMING拆解评测...

在年初的CES2020上,AMD发布了面向中端市场的Radeon RX 5500 XT,进一步完善了自己的游戏显卡产品线。在本月21日,RX 5600 XT正式解禁发布。各大AIB厂商也在第一时间推出了自己的相关产品。我们也在第一时间收到了来自华硕的ROG STRIX RX5600XT…

集成源码深度剖析:Fescar x Spring Cloud

Fescar 简介 常见的分布式事务方式有基于 2PC 的 XA (e.g. atomikos),从业务层入手的 TCC( e.g. byteTCC)、事务消息 ( e.g. RocketMQ Half Message) 等等。XA 是需要本地数据库支持的分布式事务的协议,资源锁在数据库层面导致性能较差,而支…

CPU 到底是怎么认识代码的?涨姿势了!

戳蓝字“CSDN云计算”关注我们哦!作者 | brightwang责编 | 阿秃最近读到这样一篇好文章,从底层硬件角度出发剖析了一下CPU对代码的识别和读取,内容非常精彩,读完感觉大学里学到的很多东西瞬间联系起来了,这里分享给大家…