SpringBoot3+Jasypt如何在配置文件中对数据库的密码进行加密以防止密码泄露

embedded/2024/11/24 21:49:41/

在 Spring Boot 3 中,可以通过`jasypt-spring-boot-starter`对配置文件中的数据库密码或者其他重要密码进行加密,操作非常简单,可以有效防止密码泄露:

1. 使用 Jasypt 加密

添加依赖

pom.xml 中添加 Jasypt 依赖:

jasypt-spring-boot-startericon-default.png?t=O83Ahttp:// https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter

<!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter -->
<!-- https://zhengkai.blog.csdn.net/ -->
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version>
</dependency>

加密密码

使用 Jasypt 提供的工具对密码进行加密

 
java -cp jasypt-spring-boot-cli-3.0.5.jar com.ulisesbocchio.jasyptspringboot.cli.EncryptorCLI input="yourPassword" password="encryptionKey"

请注意保存好你的encryptionKey和password

  • input="yourPassword"
  • password="encryptionKey"
     

这将输出一个加密的密码,例如:ENC(encryptedPassword)

配置文件设置

application.propertiesapplication.yml 中使用加密后的密码:

 
#by https://zhengkai.blog.csdn.net/
spring.datasource.url=jdbc:mysql://localhost:3306/yourdb
spring.datasource.username=yourUsername
spring.datasource.password=ENC(encryptedPassword)

配置解密

application.properties 中添加解密密钥:

jasypt.encryptor.password=encryptionKey
#https://zhengkai.blog.csdn.net/
#encryptedPassword
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.postgresql.Driverurl: jdbc:postgresql://127.0.0.1:5432/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: postgrespassword: ENC(encryptedPassword)
#encryptionKey
jasypt:encryptor:password: encryptionKey

通过使用 Jasypt 或其他秘密管理工具,可以有效地保护 Spring Boot 应用程序中的敏感信息。选择适合你的应用场景的加密策略,确保密码等敏感数据的安全。


http://www.ppmy.cn/embedded/140216.html

相关文章

Word Embedding

Word Embedding 一 基本概述二 word embedding可视化 哈喽,小伙伴们!今天聊一聊自然语言处理(NLP)中的一个小概念.语料的数值化转化.因为有一定了解的小伙伴应该都知道在NLP中,汉字是没办法直接送到模型训练的,因为计算机只能识别二进制的数据.所以我们需要把汉字转成张量的形式…

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中&#xff0c;有时我们需要让电脑在特定的时间自动关机&#xff0c;比如在下载大文件完成后、执行长时间的任务结束时&#xff0c;或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候&#xff0c;Wise Auto Shutdown 这款软件就能派上大用场了…

播放器开发之ffmpeg 硬件解码方案

硬件编解码的概念 硬件编解码是⾮CPU通过烧写运⾏视频加速功能对⾼清视频流进⾏编解码&#xff0c;其中⾮CPU可包括GPU、FPGA或者 ASIC等独⽴硬件模块&#xff0c;把CPU⾼使⽤率的视频解码⼯作从CPU⾥分离出来&#xff0c;降低CPU的使⽤负荷&#xff0c;使得平台能 ⾼效且流畅…

[译]Elasticsearch Sequence ID实现思路及用途

原文地址:https://www.elastic.co/blog/elasticsearch-sequence-ids-6-0 如果 几年前&#xff0c;在Elastic&#xff0c;我们问自己一个"如果"问题&#xff0c;我们知道这将带来有趣的见解&#xff1a; "如果我们在Elasticsearch中对索引操作进行全面排序会怎样…

error Unexpected ‘debugger‘ statement no-debugger

[eslint] D:\System File\Desktop\后台\test\test\src\components\HelloWorld.vue 19:5 error Unexpected debugger statement no-debugger ✖ 1 problem (1 error, 0 warnings) You may use special comments to disable some warnings. Use // eslint-disable-next-li…

线性代数(第六章:二次型)

一、二次型的基础知识 1. 二次型 定义:含有 n 个变量 x1 , x2 ,…, xn 的二次齐次函数 f = a11x12 + a22x22 + … + annxn2 + 2a12x1x2 + 2a13x1x3 + … + 2a(n-1),nxn-1xnf = xTAx(AT = A),x = (x1 , x2 ,…, xn)Tf = Σi=1nΣj=1n aijxixj称 A 是二次型的矩阵,r(A) 是…

基于Java Springboot高校教务管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

1.langchain中的prompt模板(Prompt Templates)

本教程将介绍如何使用 LangChain 库中的提示模板&#xff08;PromptTemplate&#xff09;来生成和处理文本。我们将通过具体的代码示例来解释程序的运行逻辑。 1. 导入必要的库 首先&#xff0c;从 langchain_core.prompts 模块中导入 PromptTemplate 类。 from langchain_c…