特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处: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对敏感词加密解密相关推荐

  1. 微信支付--敏感词加密

    敏感词加密 Map<String, Object> weChatPlatformCertificateMap = payScorePartnerService.getPartnerCert ...

  2. 微信支付:小微商户申请入驻第三步:平台证书序列号解密和敏感词加密

    首先,还是上微信官方链接 微信官方平台证书解密指引 微信官方敏感词加密指引 平台证书解密 定义接口 首先,由于平台证书获取,跟解密,都是平台证书这货的,那就放在同一个service吧.pom文件之前文 ...

  3. linux篡改url命令,linux 使用curl命令访问url并模拟cookie

    1.目录 linux下通过命令访问url的方式有多种,主要如下 2.1.elinks elinks – lynx-like替代角色模式WWW的浏览器 2.1.2.wget 这个会将访问的首页下载到本地 ...

  4. linux定时任务执行url,科技常识:linux定时任务访问url实例

    今天小编跟大家讲解下有关linux定时任务访问url实例 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关linux定时任务访问url实例 的相关资料,希望小伙伴会喜欢也能够帮助大家. 这次 ...

  5. java请求并行方案_让 Yar Java Client 支持执行并行请求,ExecutorService 的使用

    官方 php 客户端文档如下Yar_Concurrent_Client { /* 属性 */ static $_callstack ; static $_callback ; static $_err ...

  6. java请求注释_求达人给java代码【注释】!!请求尽量详细,万分感谢!!

    (1)定义一个接口Inf,含有常量π和一个实现计算功能的方法calculate(),再分别定义一个面积类area和一个周长类circumference,各自按计算圆面积和圆周长具体实现接口中的方法,并 ...

  7. Caused by: java.lang.NoClassDefFoundError: Lcom/netflix/config/CachedDynamicIntProperty;

    NoClassDefFoundError错误发生的原因 NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误.例如在运行 ...

  8. Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  9. php 访问url curl,推荐PHP一个用CURL访问URL的函数

    推荐PHP一个用CURL访问URL的函数 其实,php访问url的方式有好几种,这里只介绍其中一种curl方式,觉得有用的就收藏. /** * curl发送HTTP请求方法 * @param $url ...

最新文章

  1. centos7ftp服务器的搭建
  2. 网易云信入选《2021 年浙江省首版次软件产品应用推广指导目录》
  3. 嵌入式volatile关键字
  4. PHP如何保存当前用户
  5. 浏览——用户自定义路径
  6. XYGame-AI设计3-行为树-第1版本
  7. 【结构型】Bridge模式
  8. 输入日期得出星座c语言,根据日期计算星座
  9. 怎么用计算机算分数加减法,怎么算分数加减法?怎么教给孩子?
  10. python批量分析表格_老板让我从几百个Excel中查找数据,我用Python一分钟搞定!...
  11. 【sql server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 解决方法总结
  12. 从虚拟光驱启动计算机,让你的ISO文件成为光盘运行起来虚拟光驱Daemon Tools教程 -电脑资料...
  13. 基于python实现的聊天室(客户端:一)窗口设置
  14. vs2017c语言没有空项目,「vs2017新建项目」visual studio 2017 创建空项目和桌面向导下的空项目...
  15. Unity3D基础界面
  16. SAP SAP 交货单批导三部走(带批次)
  17. 盘点76个当下全球免费、优质机器学习数据集获取资源
  18. sql数据删除后恢复
  19. phpstudy安装sg11组件_关于SG11加密使用、安装配置说明教程 sg11加密组件安装步骤...
  20. 嵌入式linux 国嵌,[嵌入式Linux学习]国嵌嵌入式视频1

热门文章

  1. 软考的高级职称系统架构设计师值得花时间投入吗?
  2. c#中的访问修饰符Protected,privet ,public, internal,和internal protected
  3. 阿里云安骑士和态势感知SAS有区别吗?
  4. java源文件名的后缀是什么?
  5. 3.1.13.fcntl函数介绍
  6. win10 xp共享文件夹互访问题解决
  7. Do it for success
  8. python爬虫爬取股票评论,调用百度AI进行语义分析, matlab观察股票涨跌和评论的关系
  9. 提高系统的业务价值—柯莱特钱建宇谈应用管理服务外包
  10. RocketMQ 设计原理与实践