Spring Cloud Config 配置的加密解密

【Spring Cloud】:解释加密配置文件的方法 在Spring Cloud中,加密配置文件是一种保护敏感信息(如数据库密码、API密钥等)的重要措施。Spring Cloud提供了多种方式来实现配置文件的加密和解密,其中最常用的是通过Spring Cloud Config Server配合Spring Cloud Bus来管理加密后的配置信息。 阅读详情

配置内容的加密解密

很多场景下很多场景下,对于某些敏感的配置内容,例如数据库账号密码等应当加密存储。Config Server为配置内容的加密与解密提供了支持。

安装JCE

Config Server的加密解密功能依赖JCE(Java Cryptography Extension)。
jdk8默认提供了,如果未在目录(/Library/Java/JavaVirtcy Machines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/security)下找到policy文件夹,可以去官网下载JCE。然后放进去。

对称加密

在 Config Server 项目中 添加一个bootstrap.yml,一定要新增加配置文件,在原来的配置文件中添加配置无效。增加以下配置。

encrypt:
  key: config

然后启动项目,在终端输入curl http://localhost:8011/encrypt -d user。可以得到user的加密串。

weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/encrypt -d user
b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883 

输入 curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883

weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883
user 

说明能正常加密解密。

加密解密数据库密码

在git上新建一个文件config-dev.yml或者修改原来的properties文件。加入数据库配置。

spring:
  datasource:
    name: user
    password: '{cipher}b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883'

如果不加{cipher}的话,将不会解析出明文。访问http://localhost:8011/config-dev.yml。可以看到。
在这里插入图片描述
下面这种方式访问也可以。
在这里插入图片描述
如果想 Config Server 不解密,直接返回密文本身,由Config Client 自行解密的话。可在Config Server中加入以下配置。

spring:
  cloud:
    config:
      server:
        encrypt:
          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

然后将生成的 server.jks复制到Config Server的resources目录下。然后在bootstrap.yml文件中新增配置。

encrypt:
  key-store:
    location: classpath:/server.jks
    password: letmein # 这些参数和 生成server.jks文件的命令里的参数要对应
    alias: mytestkey # 这些参数和 生成server.jks文件的命令里的参数要对应
    secret: changeme # 这些参数和 生成server.jks文件的命令里的参数要对应

然后pom文件中添加资源路径的配置。

            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                    <excludes>
                        <exclude>**/*.jks</exclude>
                    </excludes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>false</filtering>
                    <includes>
                        <include>**/*.jks</include>
                    </includes>
                </resource>
            </resources>

然后访问curl http://localhost:8011/encrypt -d user。如果遇到下面的错误。

{"timestamp":"2020-01-05T11:05:26.560+0000","status":500,
"error":"Internal Server Error",
"message":"Unable to initialize due to invalid secret key","path":"/encrypt"}

这就是说明JAVA_HOME/jre/lib/security下缺少JCE的包。将下载的JCE的两个jar包复制进去就好了。
在这里插入图片描述
然后再访问curl http://localhost:8011/encrypt -d user。就能看到结果了。

weiweideMacBook-Pro:Downloads pengweiwei$ curl http://localhost:8011/encrypt -d user
AQAUpWp6o1qL6HEViPjGe1t87nMDyEoUgMHJccV+czETNYRJWghMlKhr8Kwm39NJBcP9Xtzcu505q1wPKobv05o6+/Qi422ws+y5xg
NzLLniLWlXNO8//mFBfOTPAcOeZEOFe42rSB33CNqX2pSJFETOBJeMeBZWzE/2vqwoxWpGrSj1QpNsgHFqrz0l2cFs/hjbxYNg4c3H
SsZ5RJ6pPHCXB7ZmdlwMa4tvZZikudBw1/SfXXsWEcMelMSvuM+wjdHnRmc9pBDKVwjSpzRUg628fZiYprtXViDVNlXoSpu4I28g4j
RuDNvbS6/3ZzWQO7f5gUjfpi3PLL6bbGNTNDzTqkzmSD+sNZHldmJrdl2eOC3d/2cuSXK2qC6PsY2eaTk=
【Qt】Window环境下搭建Qt6、MSVC2022开发环境(无需提前安装Visual Studio) 本文介绍 Windows 环境下无需安装 Visual Studio,搭建 Qt6 与 MSVC2022 开发环境的方法,以节省磁盘空间。核心步骤包括:用中科大镜像提速 Qt6 在线安装,需勾选 Qt Creator 17.0.1、MSVC 2022 x64 等组件;配置环境变量,添加 mingw_64、msvc2022_64 及 Qt Creator 的二进制目录;安装 MSVC 2022 编译器与 Windows 10 SDK 并记录版本;配置 Qt Creator 构建套件,可选设置 vcvarsal 阅读详情

相关推荐

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

本文详细介绍了如何利用UE5 Lyra框架快速搭建多人对战游戏原型,包含完整的配置流程和实战案例。Lyra作为可直接二次开发的游戏模板,内置了GAS技能系统、Enhanced Input输入控制等核心功能,大幅缩短开发周期。通过替换角色模型、调整武器数值和配置新地图规则,开发者可在48小时内完成科幻团队竞技游戏原型的搭建。

weixin_28717411的博客 457

基于SpringCloud、SpringBoot构建的微服务框架

基于SpringCloud、SpringBoot构建的微服务框架重要说明:    1、config中的模块的配置文件的名字需要同模块中设置的spring.application.name相同!  2、config中的个模块的配置文件的优先级大于模块自己的配置文件,以reristry模块举例:config中的resource\shared\registry.yml中的配置优先级大于registry模...

trusause的博客 1971

避坑指南:RK3588上编译EtherCAT 1.6时遇到的权限问题和模块安装错误

本文详细解析了在RK3588平台上编译EtherCAT 1.6时常见的权限问题和模块安装错误,提供了两种实战解决方案和嵌入式开发的通用权限管理策略。通过优化内核配置和编译参数,显著提升实时性能,帮助开发者高效完成EtherCAT主站部署。

weixin_33724046的博客 453

Spring Cloud Config Server 配置总结

Spring Cloud Config Server 配置总结 Spring Cloud 微服务使用配置仓库进行配置管理的时候,需要注意一些东西,自己走了一些弯路,不断去修改配置调试程序总结了一点经验,在这里记录一下。 只要依赖Config Server的应用必须在bootstrap.yml里配置相关配置仓库的信息本人习惯使用yml配置文件,当然也可使用propertiesconfig serv

撸码猿的博客 681

FPGA时序约束:从时钟树到数据路径的深度解析与优化策略

本文深入解析FPGA时序约束的核心技术与优化策略,涵盖时钟树结构分析、时序报告解读和数据路径优化。重点探讨Vivado工具中的时序约束方法,包括时钟定义、异常约束和物理优化,帮助工程师掌握寄存器级时序分析和系统级协同设计,实现高性能FPGA设计。

u5v6w7的博客 652

Hopf振荡器在机器人步态控制里到底怎么用?一个CPG仿生案例说清楚

本文深入解析了Hopf振荡器在机器人步态控制中的实际应用,通过CPG仿生案例详细展示了从数学方程到关节指令的完整流程。重点探讨了Hopf振荡器的极限环稳定性、参数调节技巧及自适应控制策略,为机器人运动控制提供了高效解决方案。

weixin_29284657的博客 200

Spring Cloud Config 加密和解密

如果远程属性源包含加密内容(以{cipher}开头的值),则在通过HTTP发送到客户端之前,它们将被解密。这种设置的主要优点是,当它们“静止”时,属性值不必是纯文本(例如在git仓库中)。

qq_40354025的博客 1万+

2025年7月12日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案解析

2025年7月12日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案解析

伶俐角少儿编程 711

spring cloud config server保存加密配置项

配置项中通常会包括一些敏感的信息,比如密码等,config server支持对这些敏感信息进行对称加密保存,在运行时解密。 config server开启加密功能 config server端开启加密功能需要以下几步 下载并安装JCEPolicy 配置对称加密的密钥 验证加密功能 下载并安装JCEPolicy 使用下面的脚本下载jce_policy-8.zip文件,解压后,复制Unlimite...

朱登凯的专栏 1828

Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

基于Transformer的股票市场多因子量化选股模型,深度解析:基于Transformer的股票市场多因子量化选股模型

传统多因子模型通常采用线性回归、岭回归或Lasso回归来估计因子权重,其核心假设是因子与未来收益之间存在线性关系。然而,现实中的股票市场具有典型的非线性、非平稳和高噪声特征。卷积神经网络(CNN)擅长提取局部特征,但难以捕捉全市场股票之间的全局依赖关系;循环神经网络(RNN)及其变体LSTM虽然能处理时间序列,但存在梯度消失问题且难以并行计算。Transformer的self-attention机制能够:直接建模任意两只股票之间的相关性动态计算因子权重而非静态线性组合。

YOLO 250

Spring Cloud Config-分布式配置中心加密解密

在微服务架构中,我们通常都会采用DevOps的组织方式来降低因团队间沟通造成的巨大成本,以加速微服务应用的交付能力。这就使得原本由运维团队控制的线上信息将交由微服务所属组织的成员自行维护,其中将会包括大量的敏感信息,比如:数据库的账户与密码等。很显然,如果我们直接将敏感信息以明文的方式存储于微服务应用的配置文件中是非常危险的。针对这个问题,Spring Cloud Config提供...

u010277958的博客 712

【仿真技巧】Smart Eye Probe在ADS信号仿真中的应用

Smart_Eye_Probe是一个眼探头,允许灵活数量的输入通道,输入通道支持单端或差分信号的混合,并且,可以使用一个共同的时钟信号触发通道的眼图。目前,仅支持瞬态(Transient)和通道(Channel Sim)逐位模式(Bit by bit)模拟,不支持信道统计(Statistical)模式和DDR总线(DDRSim)仿真。

一只豌豆象的博客 1269

【Spring Cloud】Spring Cloud Config

SpringCloudConfig介绍、刷新、加密

每篇博客都不是最终版,都会随着我的学习更新 1506

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Spring cloud config配置文件加密解密

Spring cloud config配置文件加密解密 学习了:http://blog.csdn.net/u010475041/article/details/78110349 学习了:《Spring Cloud于Docker微服务架构实战》周立 的确跟spring cloud的版本有关系; https://github.com/spring-cloud/spring-cloud-config/i...

weixin_34096182的博客 267

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Spring Cloud Config 加密解密:如何保护敏感配置数据安全

在现代微服务架构中,配置管理是保障系统安全的关键环节。Spring Cloud Config 作为一款强大的外部配置管理工具,提供了完整的加密解密功能,帮助开发者保护数据库密码、API密钥等敏感配置数据。本文将详细介绍如何利用 Spring Cloud Config 实现敏感配置的安全管理,从基础概念到实际操作,让你轻松掌握配置加密的核心技巧。 ## 为什么需要配置加密? 在传统的配置管理方式

gitblog_00423的博客 479

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微服务学习笔记-- Spring Cloud Config 同步刷新配置及加密解密

目录 前言 同步刷新 添加依赖 添加RabbitMQ 添加测试方法 测试 设置自动刷新 加密解密 对称加密 安装JCE 存储加密内容 非对称加密 前言 前面的文章为微服务架构引入了统一配置管理Spring cloud config,实现了各个微服务配置分布式管理。配置被修改后,我们不可能重新启动微服务,前面说到过Spring Cloud Config可以自动更...

HJWZYY 1504

Spring Cloud Config服务端配置细节之加密解密

准备工作 默认情况下我们的JRE中自带了JCE(Java Cryptography Extension),但是默认是一个有限长度的版本,我们这里需要一个不限长度的JCE,这个JCE我们可以直接百度然后在Oracle官网下载,下载之后解压,我们可以看到如下三个文件: 我们需要将这里的两个jar包拷贝到我们的jdk安装目录下,我的是%JAVA_HOME%\jre\lib\security,覆盖...

anita9999的博客 1424

Spring Cloud 配置中心

在微服务架构中,每个微服务⼀般都有⾃⼰的配置⽂件,⽐如数据库连接,Redis,MQ等相关配置.在不同的环境下,这些配置都会不同。维护成本⾼:每次配置修改,都需要重新部署服务.版本问题:同⼀个应⽤的不同实例,需要使⽤同⼀个版本,逐⼀部署,可能会导致版本不⼀致的问题.安全问题:⼀些敏感配置(如数据库密码) 可能会泄露,缺乏安全的管理⼿段。所以,就有了配置中⼼。可以让我们对项⽬的配置进⾏集中管理。

wk200411的博客 1201

【亲测免费】 Spring Cloud Config Admin 使用教程

- GitHub: [https://github.com/dyc87112/spring-cloud-config-admin](https://github.com/dyc87112/spring-cloud-config-admin) - Gitee: [https://gitee.com/didispace/spring-cloud-config-admin](https://gitee.

gitblog_00447的博客 1046

使用Spring Cloud Config和JCE加密配置文件的实战教程

Spring Cloud Config 是一个用于集中管理分布式系统中配置文件的工具。:负责从远程存储中获取配置文件并将其提供给客户端。:从 Config Server 获取配置并在应用程序中使用。是 Java 提供的一个框架,支持加密、密钥管理和证书操作。JCE 允许开发者使用强加密算法来处理敏感数据。加密:将敏感的配置数据加密存储在远程存储库中。解密:应用程序在启动时从远程存储库获取加密的配置数据,并使用 JCE 进行解密。

程序员Blue的博客 1346

Spring Cloud 分布式配置中心:Spring Cloud Config

部分内容摘自Spring Cloud 官方文档中文版 本文源码地址https://github.com/Wyxwx/springCloud-config 目录 Spring Cloud Config 简介 Spring Cloud Config 基本使用 Git 后端 URI 的占位符 配置多个仓库 安全保护 加密解密 对称加密 客户端快速失败 客户端重试 Sp...

词庸 895

Spring Cloud Config服务器

Spring Cloud Config供用于外部配置(名称/值对或等效的YAML内容)的基于资源的HTTP HTTP。使用@EnableConfigServer注释,可以轻松将服务器嵌入到Spring Boot应用程序中 。所以这个程序是一个配置服务器: ConfigServer.java @SpringBootApplication @EnableConfigServer public clas...

selt791的博客 1008

Spring Cloud Config服务端配置细节(二)之加密解密

在微服务架构中,由于独立的服务个数众多,加上前期测试工作量大,一些原本由运维人员维护的敏感信息会被我们直接写在微服务中,以提高开发效率,但是这种明文存储方式显然是非常危险的,所以我们要对这些信息进行加密,而Spring Cloud Config则提供了对称加解密、非对称加解密的功能来帮助我们完成这一需求。OK,本文我们就来看看如何实现配置信息的加解密。 本文是Spring Cloud系列的第二十

江南一点雨的专栏 5839

使用Spring-Cloud-Config创建配置中心

Spring Cloud Config是Spring创建的一个全新的服务端/客户端项目,为应用提供分布式的配置存储,提供集中化的外部配置支持。它除了适用于Spring构建的应用程序外,也可以在其他语言运行的应用程序中使用。 Spring Cloud Config分为服务端和客户端两部分。其中服务端称为分布式配置中心,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息的功能;客户端则是微服...

王浩的技术博客 2394

Spring Cloud第十篇 | 分布式配置中心Config

本文是Spring Cloud专栏的第十篇文章,了解前九篇文章内容有助于更好的理解本文: SpringCloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 Spring Cloud第四篇 | 客户端负载均衡Ribbo...

java梦工厂 216
上一篇: Spring Cloud入门实战(六) Config--统一管理微服务配置
下一篇: Spring Cloud入门实战(七) Bus--自动刷新微服务配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值