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服务器 环境库 健康指标 安全 加密和 ...
随机推荐
- uva 11991 查询中容器的运用
题目大意:一个n个整数的数组,m条查询指令.(1<=n,m<=100 000)每次询问第k个整数v的下标值,若不存在输出0. #include<iostream> #inclu ...
- Mysql安装及自动化部署脚本方案
一.简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是 ...
- msp430项目编程56
msp430综合项目---扩展项目六56 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结
- Scrapy学习-7-数据存储至数据库
使用MySQL数据库存储 安装mysql模块包 pip install mysqlclient 相关库文件 sudo apt-get install libmysqlclient-devel sudo ...
- awk 对简单文本处理试水
#juanjuan是一个文件 [root@localhost c_test]# cat juanjuan , , bffd97d0 , , bffd97cc , , bffd97c8 , , #-F ...
- php——两种无限级分类
/** * 无级递归分类 TP框架 * @param int $assortPid 要查询分类的父级id * @param mixed $tag 上下级分类之间的分隔符 * @return strin ...
- golang-random随机数
在Golang中,有两个包提供了rand,分别为 "math/rand" 和 "crypto/rand", 对应两种应用场景. 一."math/ra ...
- Android-事件体系全面总结+实践分析
事件分发在Android中是很重要的基础知识,网上相关的文章也很多,但是花了很多精力看了很多别人的分析总结,最终的感觉还是似懂非懂,所以决定自己动手研究一下,去发现其中的规律.本文顺着我自己的思路去研 ...
- Linux出现cannot create temp file for here-document: No space left on device的问题解决
在终端输入:cd /ho 按tab键时,显示错误: bash: cannot create temp file for here-document: No space left on device 这 ...
- android 获得SDCard信息
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...