说明:SpringCloud系列笔者自学系列,学习来源是周立的博客 http://www.itmuch.com/ 。而此处转载其博客只是为了方便自己以后的学习。
本篇来源 http://www.itmuch.com/spring-cloud/finchley-21/
前文都是将配置明文存储在Git仓库中,但在实际项目中,敏感的配置属性(例如数据库账号、密码等),都应加密存储,从而提高安全性。
Config Server为配置内容的加密与解密提供了支持。
安装JCE
- Java 6 JCE地址:https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
-
Java 7 JCE地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
-
Java 8 JCE的地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 。
加解密端点
- 加密:
curl $CONFIG_URL/encrypt -d 想要加密的内容
- 解密:
curl $CONFIG_URL/decrypt -d 想要解密的密文
对称加密
-
Config Server的bootstrap.yml中添加:
encrypt: key: foo # 设置对称密钥
密文存储
-
以yaml格式存储:
spring: datasource: username: dbuser password: '{cipher}851a6effab6619f43157a714061f4602be0131b73b56b0451a7e268c880daea3'
-
以properties格式存储:
spring.datasource.username=dbuser spring.datasource.password={cipher}851a6effab6619f43157a714061f4602be0131b73b56b0451a7e268c880daea3
测试
-
输入命令
curl http://localhost:8080/encrypt -d mysecret
返回
851a6effab6619f43157a714061f4602be0131b73b56b0451a7e268c880daea3
。说明mysecret
被加密了。 -
输入命令
curl http://localhost:8080/decrypt -d 851a6effab6619f43157a714061f4602be0131b73b56b0451a7e268c880daea3
可返回
mysecret
,说明能够正常解密。
非对称加密
-
执行以下命令,并按照提示操作,即可创建一个Key Store。
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
-
将生成的server.jks文件复制到项目的classpath下。
-
在bootstrap.yml中添加以下内容。
encrypt: keyStore: location: classpath:/server.jks # jks文件的路径 password: letmein # storepass alias: mytestkey # alias secret: changeme # keypass
这样,使用命令
curl http://localhost:8080/encrypt -d mysecret
尝试加密时 ,就会得到类似以下的结果。
AQB38UyNckYzW64rvsaIhy0OV4MUmS7krdHrw+VLUdqXJ4ZVdZL8/ouwSOAYM+6MSjKvzmkaU8Iv2cQ5MWhlZhCrm0f0d2ubc1MH96KBHTix9AroajeTiofPwPoBnWfBo9cC4PU1vD+rcvAvwvdR5q7rYbFc4yut4uJZRzpAXGgf680kAtb6tEtLx7c4/35PEaGXFWd2m8gn21vzWdvhbP6cdC9YlburL0Rq/0H1G+uEX99ZVIWJ0hVn4rplLWPMLUGA2ZVEyVRorIRX/2z5MU7cVPtJ6X1JZDpU4GVz8/3rD5BnbVFTGo6DfBrEzJn58Bzjl6aqo9ca/3j42RHOoQDOHXGqRX/843RbPdvMqTZd0rTOBHTUrVG9E15sCajiLkw=
相对于对称加密,非对称加密的安全性更高,但对称加密相对方便。读者可按照需求,自行选择加密方案。
注意点&坑
encrypt.*
务必存放在bootstrap.*
中,否则加解密特性无法生效!!
配套代码
对称加密
- GitHub:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-config-server-encryption
- Gitee:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-config-server-encryption
非对称加密
- GitHub:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-config-server-encryption-rsa
- Gitee:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-config-server-encryption-rsa
相关文章
- Config Server——配置内容的加密与解密
- 跟我学Spring Cloud(Finchley版)-19-配置中心-Spring Cloud Config
- 跟我学Spring Cloud(Finchley版)-20-Spring Cloud Config-Git仓库配置详解
- Config Server——使用Spring Cloud Bus自动刷新配置
- 《Spring Cloud与Docker微服务实战》实体书目录
相关推荐
这些资源文件是开源书籍《跟我学Spring Cloud》的配套代码,用于帮助读者通过实例更好地理解和掌握Spring Cloud的使用方法和原理。 其中,Dockerfile文件位于2016-Brixton的microservice-api-gateway项目中,它描述...
本文档包含了学习Spring Cloud技术栈中所涉及的配套代码资源,涵盖了从Spring Cloud Brixton版本到Finchley版本的演进。其中,代码资源主要围绕微服务架构的核心组件进行展开,如API网关、配置服务器等。 首先,...
《跟我学Spring》是一份全面且深入的Spring学习资源,旨在帮助初学者和有经验的开发者从零开始掌握Spring框架,逐步进阶为Spring高手。这份资料不仅包含了Spring的基本概念和核心特性,还通过实战项目让你亲身体验...
稳压罐sw16_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
内容概要:本文详细介绍了利用递推最小二乘法(RLS)进行永磁同步电机参数辨识的方法及其MATLAB仿真过程。首先解释了RLS算法的优势,如不需要概率模型、计算量适中以及适用于嵌入式系统的实时参数更新。接着展示了将电机电压方程转换为标准形式Y=φθ的具体步骤,并提供了核心的RLS迭代代码。文中还讨论了仿真过程中的一些关键技术细节,如遗忘因子的选择、协方差矩阵的初始化和更新方式、电流信号的处理方法等。最终给出了仿真结果,显示电阻和电感的辨识误差分别达到了0.08%和0.12%,并指出了实际应用中需要注意的数据同步和数值稳定性问题。 适合人群:从事电机控制研究的技术人员、研究生及以上学历的学生。 使用场景及目标:①帮助研究人员理解和掌握RLS算法在电机参数辨识中的应用;②提供详细的仿真代码和配置建议,便于快速搭建实验环境;③指导如何优化算法性能,提高参数辨识精度。 其他说明:本文不仅涵盖了理论推导,还包括了大量的实践经验分享和技术细节探讨,有助于读者全面理解RLS算法的实际应用。同时,文中提到的仿真方案可以方便地移植到DSP平台,进一步扩展了其实用价值。
零起点Python大数据与量化交易
管道清污机器人sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
1、文件说明: Centos8操作系统thai-scalable-garuda-fonts-0.6.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf thai-scalable-garuda-fonts-0.6.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
内容概要:本文详细介绍了利用ABAQUS进行滑坡和沉降对埋地管道影响的有限元分析方法。主要内容涵盖了几何建模、材料属性定义、接触设置、边界条件与加载等方面的技术细节。通过具体的Python脚本示例展示了如何构建模型,并深入探讨了滑坡和沉降条件下管道的应力、应变分布及其潜在破坏机制。此外,还分享了一些实战经验和优化技巧,如材料模型选择、接触条件设置、边界条件处理等,强调了这些因素对结果准确性的重要影响。 适合人群:从事地下管道工程设计、施工及维护的专业技术人员,尤其是那些希望深入了解滑坡和沉降对管道影响的研究人员和技术专家。 使用场景及目标:适用于评估和预测滑坡和沉降对埋地管道造成的力学响应,帮助工程师们更好地理解和应对复杂的地质灾害环境,从而提高管道系统的安全性与稳定性。 其他说明:文中提供的Python代码片段仅为示意,具体实施时需结合ABAQUS的实际接口和项目需求进行适当调整。同时,对于大规模模型的计算,建议使用高性能计算资源以确保效率和精度。
Java一天面试突击,迅速掌握Java常见面试题
莲子去壳机设计模型SW10_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
MFRC-522+RC522+RFID射频+IC卡感应模块
内容概要:《学术研究提示设计 50 招》是一份详尽的指南,旨在帮助研究人员提高学术写作和研究效率。该文档涵盖了从论文撰写、润色、翻译、查重降重、参考文献管理、投稿审稿到文献阅读等多个方面的具体操作指令。每一章节均针对特定任务提供了详细的步骤和注意事项,例如如何撰写标题、摘要、致谢,如何进行英文润色、中英翻译,以及如何优化逻辑结构等。文档还介绍了如何利用AI工具进行文献分析、术语表提取和研究方向探索等内容,为研究者提供了全面的支持。 适合人群:适用于学术研究人员,特别是那些需要撰写、润色和提交学术论文的研究者,包括研究生、博士生及高校教师等。 使用场景及目标:① 提供一系列具体的指令,帮助研究者高效完成论文的各个部分,如撰写标题、摘要、致谢等;② 提供润色和翻译的详细指导,确保论文语言的准确性和专业性;③ 提供查重降重的方法,确保论文的原创性;④ 提供参考文献管理和投稿审稿的指导,帮助研究者顺利发表论文;⑤ 利用AI工具进行文献分析、术语表提取和研究方向探索,提高研究效率。 阅读建议:此资源不仅提供了具体的指令和方法,更重要的是引导研究者如何思考和解决问题。因此,在学习过程中,不仅要关注具体的步骤,还要理解背后的原理和逻辑,结合实际案例进行实践和反思。
项目optionc-20250409
2023年c语言程序设计基本概念考点归纳.doc
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
内容概要:本文详细介绍了使用Matlab进行模拟和数字滤波器设计的方法,涵盖了巴特沃斯、切比雪夫等多种经典滤波器类型。首先讲解了模拟滤波器的设计,如巴特沃斯滤波器的通带平坦性和切比雪夫滤波器的通带波纹特性,并提供了具体的代码示例。接着讨论了数字滤波器的设计,包括IIR滤波器的递归特性和FIR滤波器的线性相位特性,同样附有详细的代码实现。文中还特别强调了不同类型滤波器之间的转换方法以及设计过程中常见的注意事项,如频率归一化、阶数选择等。最后推荐了一些实用的Matlab工具,如fvtool和FDATool,帮助用户更直观地理解和调试滤波器设计。 适合人群:具有一定信号处理基础和技术背景的研究人员、工程师及学生。 使用场景及目标:适用于需要进行滤波器设计的实际工程应用,如通信系统、音频处理等领域。目标是让读者掌握滤波器设计的基本原理和具体实现方法,能够独立完成滤波器的设计和调试。 其他说明:文章不仅提供了理论知识,还通过大量实例代码帮助读者更好地理解和应用所学内容。建议读者在实践中多尝试不同的参数配置,以加深对滤波器特性的理解。
饲料干燥装置sw16_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip