在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全新亮相,开启开源新时代,内置全新数据结构...
