关于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应用程序即可。
关于JDK8采坑JCE加密限制版本问题相关推荐
- Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录
Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录(亲测运行) git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubu ...
- react-native-webrtc之采坑之旅
目标 1.实现APP与WEB端安全帽功能通过摄像头的实时通信,再web端可以查看手机摄像头获取的图像,手机上也可实时显示画面: 2.连接.下线 3.切换分辨率.前后摄像头 使用的相关工具(没有一个不踩 ...
- 熊海CMS_V1.0代码审计与漏洞分析及采坑日记(一)--文件包含漏洞
前言 最近几天在给协会的学弟讲代码审计入门相关内容,便找了这个熊海CMS_V1.0来教学,结果在这个过程中遇到蛮多问题的,于是这篇文章详细记录了对熊海CMS_V1.0从搭建到审计与漏洞分析的过程,其中 ...
- 微信支付采坑记录(java后端 一:微信支付调用从哪一步开始)
普通商户模式微信支付之APP支付统一下单: 前言: 最近项目开发到微信支付的模块,经过一周的不懈努力,虽然微信支付流程跑通了,但当时的那些坑是真的烦,为了避免自己以后犯同样的错误,当然还有各位新接触微 ...
- VS2015+MySql+EF6采坑经验总结
原文:VS2015+MySql+EF6采坑经验总结 背景:VS2015+MySql+EF6(DB First) 采坑顺序:按照以前的记忆,操作依次如下: 1,安装 MySQL Connector/NE ...
- 安装docker和jupyter采坑历程
背景:发现自己电脑配置不够,在进行模型参数调优时基本进行不下去了.计划使用云服务器,由于自己只是用来跑模型.所以按需计费最为合适.考虑到每次使用都需要部署开发环境,索性用docker实现.这样每次部署 ...
- Android平台招商银行“一网通”支付对接采坑记
公司最近的App中需要做支付功能,支付中需要支持微信支付.支付宝支付.一网通支付.本文主要记录在对接Android平台中的"一网通"过程中遇到的坑,如果有类似需求的朋友,可供你参考 ...
- (原创)修改BIOS让华硕Z87-A老主板支持NVMe硬盘启动(采坑实录)
当年经典的华硕Z87-A主板至今仍然老当益壮,美中不足就是不支持NVMe SSD作为启动盘.由于工作生活繁忙,2年多来陆陆续续查了好多资料,再加上有CH341A编程器加持,自认已经准备得够充分.最近乘 ...
- vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
在工作中,有次遇到要把返回的字符串分割成两部分,一部分用另外的样式显示. 这时候,我想通过对得到字符串进行处理,在需要特别样式的字符串片段用html标签(用的span)包裹起来再通过变量绑定就好了.不 ...
最新文章
- 让Maven项目使用Nexus作为远程仓库的settings.xml配置
- 简约而不简单|值得收藏的Pandas基本操作指南
- wxWidgets:wxTopLevelWindow类用法
- NumPy之:结构化数组详解
- 带超时的system
- 处理SAP gateway service使用过程中遇到的400 error - Malformed URI literal syntax
- .NET Core 3.0及ASP.NET Core 3.0 前瞻
- php识别字符编码,PHP自动识别字符集编码并完成转码_PHP教程
- led灯条串联图_液晶电视维修:LED灯光电路原理,电路图原理分析?
- Spring.Net使用事务,try catch不回滚
- 两种方法--完全卸载macOS上的应用程序
- powerdesign165破解以及使用教程
- axios http请求报错: Request failed with status code 400
- word打开文档很久很慢_打开office非常慢怎么回事_电脑打开word文件很慢怎么办
- FILecoin 将重大战略升级,FIL 或将引导商业数据
- python爬取百度贴吧图片库_python抓取百度贴吧-校花吧,网页图片
- ObjectARX 2016 安装心得
- Win7-VirsualBox下学习Ubuntu--Ubuntu和Win7共享文件夹
- 转炉炼钢工艺流程(炼钢)
- neo4j图数据库入门