spring cloud config 属性加解密
首先需要(Java Cryptography Extension (JCE))的支持,下载路径:
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

在jdk的安装目录下/jre/lib/security,做文件替换
在config server的配置里加入
encrypt:
key: 1112
加密需要key
然后启动项目,在命令行执行curl
curl -X POST http://127.0.0.1:8888/encrypt -d mysecret
要加密的信息放最后,运行出来的结果就是加密后的字符串
7de875ef75b01957a512240c1863106a84b3344aadfa5aec2b2e4cd75478f703
需要解密的话,运行命令:
curl -X POST http://127.0.0.1:8888/decrypt -d 7de875ef75b01957a512240c1863106a84b3344aadfa5aec2b2e4cd75478f703
mysecret 使用加密加密到应用程序中: application.properties
spring.datasource.username: dbuser
spring.datasource.password: {cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ
application.yml
spring:
datasource:
username: dbuser
password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'
请注意其中的差别
而客户端正常使用即可。
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
,可能暴露的问题:
{
"timestamp": 1545212081503,
"status": 401,
"error": "Unauthorized",
"message": "Full authentication is required to access this resource",
"path": "/encrypt/status"
}
没有权限,
问题原因:
security:
basic:
enabled: true #默认值是true
user:
name: user
password: 123
解决办法:
enabled=false
以上为对称的加解密,以下讲解非对称加解密:
非对称选择在安全性方面是优越的,但是使用对称密钥往往更方便,因为它只是配置的一个属性值。
要创建一个密钥库进行测试
keytool -genkeypair -alias mytestkey -keyalg RSA \
-dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \
-keypass changeme -keystore server.jks -storepass letmein
在windows系统如果执行失败,将命令中的 \ 去掉,此为linux系统中的换行符;
如果对此命令有兴趣,可参考以下
-alias <alias> 要处理的条目的别名
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-sigalg <sigalg> 签名算法名称
-destalias <destalias> 目标别名
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X.509 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
运行后会生成server.jks文件,
将server.jks文件放在类路径(例如)中,然后在您的application.yml中配置服务器:
encrypt:
keyStore:
location: classpath:/server.jks
password: letmein
alias: mytestkey
secret: changeme
启动项目,运行命令
curl -X POST http://127.0.0.1:8888/encrypt -d 密文
AQArkCDzEKT2rJU9U+7msxdFvNqZeerM0q0zd7RJ9tyejlvzdo0eDIU6PeU693OszLI8TJ0aNPiZPkWeMJMVdO+kL8lo3EdNjQoYNpGd4sayIzhB71+0NwMKX9xqDzkZ8wz4UW8Q5qXDw1Dsj5VlmOjLD5kh+z21JNGT+EeK2ScWY2KCiy/vtUXm2ajOF5vpBWXINgvnb4+BToy8xyNbDqAORi1YehPXBdw1gEnH9c0w0uhl2dQU1MUT4+YcuaHCFOsUKJnPvxh/6cZFlvsAw1o5cT3f/fvLj3+i5VGrtx0Nu0Gn+OizrjvZ5dugS1Swjtdo+VQ5T5ONT2JxWeVBGjOW+Sxn71cJvzvDQZVkNTp9UeSVdudL23a2PGTU8fm4m94=
剩下的和上面一样
spring cloud config 属性加解密的更多相关文章
- Spring cloud config配置文件加密解密
Spring cloud config配置文件加密解密 学习了:http://blog.csdn.net/u010475041/article/details/78110349 学习了:<Spr ...
- spring cloud - config 属性自动刷新
启动config-server,启动成功后就不需要在管了; 在config-client做些修改: 在使用的controller或service的类上加上一个注解@RefreshScope 在pom中 ...
- Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...
- Spring Cloud Config 配置中心 自动加解密功能 jasypt方式
使用此种方式会存在一种问题:如果我配置了自动配置刷新,则刷新过后,加密过后的密文无法被解密.具体原因分析,看 SpringCloud 详解配置刷新的原理 使用 jasypt-spring-boot- ...
- Spring Cloud Config 配置属性覆盖优先级。
/** * Flag to indicate that the external properties should override system properties. * Default tru ...
- Spring Cloud官方文档中文版-Spring Cloud Config(上)
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#spring-cloud-feign 文中例子我做了一些测试在:http ...
- Spring Cloud Config(配置中心)
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一.简介 Spring Cloud Config为分布式系统中的外部配置提供服务器和客 ...
- 【八】Spring Cloud Config
一.分布式系统面临的--配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的力度相对较小,因此系统中会出现大量的服务.由于每个服务都需要必要的配置信息才能运行,所以一套集中式的.动 ...
- Spring Cloud Config中文文档
https://springcloud.cc/spring-cloud-config.html 目录 快速开始 客户端使用 Spring Cloud Config服务器 环境库 健康指标 安全 加密和 ...
随机推荐
- BZOJ 2298: [HAOI2011]problem a【动态规划】
Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个 ...
- BZOJ 3749: [POI2015]Łasuchy【动态规划】
Description 圆桌上摆放着n份食物,围成一圈,第i份食物所含热量为c[i]. 相邻两份食物之间坐着一个人,共有n个人.每个人有两种选择,吃自己左边或者右边的食物.如果两个人选择了同一份食物, ...
- poj 3304 判断是否存在一条直线与所有线段相交
Segments Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8579 Accepted: 2608 Descript ...
- J2ME开发入门
原文发布时间为:2008-07-31 -- 来源于本人的百度文章 [由搬家工具导入] J2ME开发入门J2ME方面开发的资料,确实是少之又少,一般给新手推荐的都是王森先生的《PDA与手机开发入门》一书 ...
- CodeForces 438D 线段树 剪枝
D. The Child and Sequence time limit per test 4 seconds memory limit per test 256 megabytes input st ...
- hdu 5012 bfs 康托展开
Dice Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
- android自定义Activity窗体大小
先给大家看图吧: 看,是不是很酷呢,呵呵. 这里我说关键的地方,就是自定义Activity的窗体大小. 这个登录框它不是一个Dialog,而是一个Activity. 如何定义,即把Activity的主 ...
- R必学包之dplyr
http://www.360doc.com/content/17/1204/10/50223086_709726679.shtml
- ios 处理内存警告
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息.收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露 ...
- 利用广播调用后台服务方法并根据方法返回的内容更新UI
一.UI布局代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...