

面试时被追问:“Spring Boot 配置文件里的数据库密码、Redis 密钥这些敏感信息,怎么防止被无权人员看到?”
这不仅是面试官的高频考点,更是实际开发中绕不开的安全红线。
在开发 Spring Boot 项目时,你是否曾在配置文件里明晃晃地写着数据库密码、API 密钥这些敏感信息?推到代码仓库时心惊胆战,生怕被人看到;部署到服务器后更是如鲠在喉,总担心哪天被恶意爬取——毕竟,明文暴露敏感信息堪称系统安全的“定时炸弹”。
别慌!今天就手把手带你用 `jasypt-spring-boot-starter` 给配置文件“上锁”。这个 Spring Boot 官方都推荐的加密神器,能让你用最少的代码、最简单的步骤,把明文密码变成加密密文,启动时自动解密还不影响业务逻辑。哪怕是加密新手,跟着这篇教程走,10 分钟就能给敏感信息穿上“防弹衣”,彻底告别配置文件“裸奔”的风险。
01
环境搭建
首先引入maven依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>然后就需要将这样的配置进行加密

02
生成加密后的密文
需要将配置文件中的明文(如数据库密码)加密为密文,有 3 种方式生成:
方式 1:用 Jasypt 提供的工具类
在项目中写一个测试方法,调用 Jasypt 的加密工具:
import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class JasyptTest {
@Autowired
private StringEncryptor encryptor; // Spring 会自动注入加密器
@Test
public void testEncrypt() {
String plaintext = "root123"; // 要加密的明文(如数据库密码)
String ciphertext = encryptor.encrypt(plaintext);
System.out.println("加密后:" + ciphertext); // 输出密文,复制备用
}
@Test
public void testDecrypt() {
String ciphertext = "刚才生成的密文"; // 测试解密是否正确
String plaintext = encryptor.decrypt(ciphertext);
System.out.println("解密后:" + plaintext); // 应输出原明文
}
}注意:运行测试时,需确保已通过启动参数或环境变量配置了 jasypt.encryptor.password,否则会报错。
方式 2:用 Jasypt 命令行工具
# Linux/Mac
./encrypt.sh input="root123" password="你的密钥" algorithm=PBEWithMD5AndDES
# Windows
encrypt.bat input="root123" password="你的密钥" algorithm=PBEWithMD5AndDES3. 输出结果中 OUTPUT 即为密文。
方式 3:Maven 插件(可选)
在 pom.xml 中添加插件,通过 Maven 命令生成:
<build>
<plugins>
<plugin>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-maven-plugin</artifactId>
<version>3.0.5</version>
</plugin>
</plugins>
</build>执行命令
mvn jasypt:encrypt-value -Djasypt.encryptor.password=你的密钥 -Djasypt.plugin.value=root123或者在idea中可以直接配置

配置加密的密钥的要加密的明文

ENC(密文)

最终将配置文件中所有的配置进行加密

测试一下!
毫无疑问肯定就报错了,因为你需要在启动的参数中配置解密的参数

在idea中配置启动的参数

这样配置完再启动就完全没问题了!!
实战源码地址:https://gitee.com/guocjsh/tai-chu-agent
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。