Spring Boot 配置明文密码加密,防泄漏

在Spring Boot应用中,出于安全考虑,通常不推荐在配置文件中明文存储数据库、Redis等密码。为了安全管理密码,今天给大家推荐一个安全好用实现,请往下看!!!

1,引入依赖

在pom.xml中,引入以下依赖:

xml 复制代码
<dependency>    <groupId>com.github.ulisesbocchio</groupId>    <artifactId>jasypt-spring-boot-starter</artifactId>    <version>3.0.4</version></dependency>

2,添加配置

在项目的application.yml (或 application.properties)中,添加如下配置:

perl 复制代码
jasypt:   encryptor:       password: p@ssw0rd&Hubt2ec980e$tts       algorithm: PBEWithMD5AndDES
       # 配置初始化向量生成器,解决Jasypt 3.0.3及以上版本启动报错的问题       # NoIvGenerator表示不使用向量生成器(即无向量)       iv-generator-classname: org.jasypt.iv.NoIvGenerator

3,生成密码的加密串

先写一个工具类,在工具类中生成密码的密文。

typescript 复制代码
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
public class JasyptUtils {
    public static void main(String[] args) {
          //你的明文密码          String password = "Mysql@123";          //自定义秘钥,与配置文件中的 jasypt.encryptor.password 保持一致          String secretKey = "p@ssw0rd&Hubt2ec980e$tts";          // 算法,与配置文件中的 jasypt.encryptor.algorithm 保持一致          String algorithm = "PBEWithMD5AndDES";          // 创建加密器对象          StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();          encryptor.setPassword(secretKey);          encryptor.setAlgorithm(algorithm);                    // 执行加密操作          System.out.println("加密前:" + password);          String encryptedPassword = encryptor.encrypt(password);          System.out.println("加密后:" + encryptedPassword);        }}

4,替换明文密码

在配置文件中,用上面工具生成的加密串,替换明文密码。

配置方式:ENC(加密串)

注意:jasypt.encryptor.password 和 jasypt.encryptor.algorithm 在工具类生成加密串时必须与配置文件中保持一致。

往期文章:

Java 8 到 Java 24 新特性一览

Spring AI基于DeepSeek实战,使AI开发更高效

【JAVA多线程】JDK中的各种锁,看这一篇就够了

现在的背调,都可以这么玩了?

Redis8.0全新亮相,开启开源新时代,内置全新数据结构...

相关推荐
AI你一生一世1 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影2 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯2 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
考虑考虑3 小时前
Posrgresql恢复.backup文件
数据库·后端·postgresql
无奈何杨3 小时前
风控决策系统决策流,策略模式,权重、顺序、投票、最坏
后端
AI开源软件4 小时前
SpringBoot3+Vue3 财务管理系统如何设计:从业务单据到总账的模块划分
spring boot·vue3·领域建模·会计凭证·ruoyi office·业财协同·财务系统设计
Patrick_Wilson4 小时前
Go 为什么需要 defer?从函数怎么收尾说起
后端·go·编程语言
苏三说技术4 小时前
DeepSeek Harness入驻B站,评论区被干成了大型插件集市!
后端
橙序员小站5 小时前
我一句话让 AI 把公众号工作台搭完了:部署实测记录
后端
Patrick_Wilson5 小时前
从文本输出理解 Go 方法与接口
后端·go·编程语言