java请求url加密_SpringCloud-Config通过Java访问URL对敏感词加密解密
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/
1、问题描述
SpringCloud-Config结合Git仓库对敏感数据进行加密,使用时SpringCloud-Config将加密后的配置文件从Git仓库下来之后解密,微服务获取到的就是解密之后的配置文件。
在统一处理敏感数据时使用的是curl命令,但是效率太低了,如是写了一个Java通过httpclient方式访问URL去实现批量(本文只是写了一个简单的demo,批量并没有补齐)
使用curl命令加密和解密
curl -H "Content-Type: text/plain" -u 'A81n360vrO':'Rp23JULSF5' http://192.168.0.110:7001/encrypt -d '123456'
curl -H "Content-Type: text/plain" -u 'A81n360vrO':'Rp23JULSF5' http://192.168.0.110:7001/decrypt -d 'AQBqzHRjh4absrQdDckiymqcGrsZB4d30tk47ZKJmr6WjA8d5bjuZz2iJE/Qc46umseuZ23tfzbwKq/hYWzFJyKBEjaV8HNYisQ4ljIYP6mcAZMphLoGnrMakW8r1cs5XxQ8QYRjOD0M+uDOPU0aZ1wo19X9VJ2m0nPdFclrUY4H522M0XQ='
2、操作方法
1、引用的pom
com.squareup.okhttp3
okhttp
3.14.2
2、核心代码
import okhttp3.*;
public class Test {
public static void main(String[] args) throws Exception{
String userName = "A81n360vrO";//服务连配置中心账号
String password = "Rp23JULSF5";//服务连配置中心密码
initClient(userName, password);
String pwd = "123456";//待加密的密码
System.out.println("加密前密码:"+pwd);
String encryptPwd = encrypt(pwd);
System.out.println("加密后密码:"+encryptPwd);
String decryptPwd = decrypt(encryptPwd);
System.out.println("解密后密码:"+decryptPwd);
}
private static OkHttpClient HTTP_CLIENT = null;
/**
* 初始化httpClient
* @param userName
* @param password
*/
private static void initClient(String userName, String password){
HTTP_CLIENT = new OkHttpClient.Builder().authenticator((route, response) -> {
String credential = Credentials.basic(userName, password);
return response.request().newBuilder().header("Authorization", credential).build();
}).build();
}
/**
* 通过http方式对数据进行解密
* @param value
* @return
* @throws Exception
*/
private static String decrypt(String value) throws Exception{
String url = "http://192.168.0.110:7001/decrypt";//配置中心解密地址
Request request = new Request.Builder().url(url).post(RequestBody.create(MediaType.parse("text/plain"), value.getBytes())).build();
Call call = HTTP_CLIENT.newCall(request);
Response response = call.execute();
ResponseBody responseBody = response.body();
return responseBody.string();
}
/**
* 通过http方式对数据进行加密
* @param value
* @return
* @throws Exception
*/
private static String encrypt(String value) throws Exception{
String url = "http://192.168.0.110:7001/encrypt";//配置中心加密地址
Request request = new Request.Builder().url(url).post(RequestBody.create(MediaType.parse("text/plain"), value.getBytes())).build();
Call call = HTTP_CLIENT.newCall(request);
Response response = call.execute();
ResponseBody responseBody = response.body();
return responseBody.string();
}
}
3、运行结果
加密前密码:123456
加密后密码:AQBqzHRjh4absrQdDckiymqcGrsZB4d30tk47ZKJmr6WjA8d5bjuZz2iJE/Qc46umseuZ23tfzbwKq/hYWzFJyKBEjaV8HNYisQ4ljIYB5ccGt7UnskSDMZrzMnk9+WJjCYxA/rgsELGACWDHGE+Cej4elP1zgsRk21UpM4FdURof8d7Wp2vrLyCgW4hij8Uq0XI1hsRO1MVSzSLl2sLAkhv2ULym9rbDtxNmFKSRX30UZjLR2zVvDi7PNVNHRQ+ZyFlTPfm834J/8aiDoVEzXRudjAOq7imbQVqha7g53JxHcFWjc2TWbVLP6mcAZMphLoGnrMakW8r1cs5XxQ8QYRjOD0M+uDOPU0aZ1wo19X9VJ2m0nPdFclrUY4H522M0XQ=
解密后密码:123456
3、参考网站
java请求url加密_SpringCloud-Config通过Java访问URL对敏感词加密解密相关推荐
- 微信支付--敏感词加密
敏感词加密 Map<String, Object> weChatPlatformCertificateMap = payScorePartnerService.getPartnerCert ...
- 微信支付:小微商户申请入驻第三步:平台证书序列号解密和敏感词加密
首先,还是上微信官方链接 微信官方平台证书解密指引 微信官方敏感词加密指引 平台证书解密 定义接口 首先,由于平台证书获取,跟解密,都是平台证书这货的,那就放在同一个service吧.pom文件之前文 ...
- linux篡改url命令,linux 使用curl命令访问url并模拟cookie
1.目录 linux下通过命令访问url的方式有多种,主要如下 2.1.elinks elinks – lynx-like替代角色模式WWW的浏览器 2.1.2.wget 这个会将访问的首页下载到本地 ...
- linux定时任务执行url,科技常识:linux定时任务访问url实例
今天小编跟大家讲解下有关linux定时任务访问url实例 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关linux定时任务访问url实例 的相关资料,希望小伙伴会喜欢也能够帮助大家. 这次 ...
- java请求并行方案_让 Yar Java Client 支持执行并行请求,ExecutorService 的使用
官方 php 客户端文档如下Yar_Concurrent_Client { /* 属性 */ static $_callstack ; static $_callback ; static $_err ...
- java请求注释_求达人给java代码【注释】!!请求尽量详细,万分感谢!!
(1)定义一个接口Inf,含有常量π和一个实现计算功能的方法calculate(),再分别定义一个面积类area和一个周长类circumference,各自按计算圆面积和圆周长具体实现接口中的方法,并 ...
- Caused by: java.lang.NoClassDefFoundError: Lcom/netflix/config/CachedDynamicIntProperty;
NoClassDefFoundError错误发生的原因 NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误.例如在运行 ...
- Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- php 访问url curl,推荐PHP一个用CURL访问URL的函数
推荐PHP一个用CURL访问URL的函数 其实,php访问url的方式有好几种,这里只介绍其中一种curl方式,觉得有用的就收藏. /** * curl发送HTTP请求方法 * @param $url ...
最新文章
- centos7ftp服务器的搭建
- 网易云信入选《2021 年浙江省首版次软件产品应用推广指导目录》
- 嵌入式volatile关键字
- PHP如何保存当前用户
- 浏览——用户自定义路径
- XYGame-AI设计3-行为树-第1版本
- 【结构型】Bridge模式
- 输入日期得出星座c语言,根据日期计算星座
- 怎么用计算机算分数加减法,怎么算分数加减法?怎么教给孩子?
- python批量分析表格_老板让我从几百个Excel中查找数据,我用Python一分钟搞定!...
- 【sql server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 解决方法总结
- 从虚拟光驱启动计算机,让你的ISO文件成为光盘运行起来虚拟光驱Daemon Tools教程 -电脑资料...
- 基于python实现的聊天室(客户端:一)窗口设置
- vs2017c语言没有空项目,「vs2017新建项目」visual studio 2017 创建空项目和桌面向导下的空项目...
- Unity3D基础界面
- SAP SAP 交货单批导三部走(带批次)
- 盘点76个当下全球免费、优质机器学习数据集获取资源
- sql数据删除后恢复
- phpstudy安装sg11组件_关于SG11加密使用、安装配置说明教程 sg11加密组件安装步骤...
- 嵌入式linux 国嵌,[嵌入式Linux学习]国嵌嵌入式视频1
热门文章
- 软考的高级职称系统架构设计师值得花时间投入吗?
- c#中的访问修饰符Protected,privet ,public, internal,和internal protected
- 阿里云安骑士和态势感知SAS有区别吗?
- java源文件名的后缀是什么?
- 3.1.13.fcntl函数介绍
- win10 xp共享文件夹互访问题解决
- Do it for success
- python爬虫爬取股票评论,调用百度AI进行语义分析, matlab观察股票涨跌和评论的关系
- 提高系统的业务价值—柯莱特钱建宇谈应用管理服务外包
- RocketMQ 设计原理与实践