首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >敏感信息在 Spring Boot 配置文件里藏不住?这套加密方法帮你 "捂严实"

敏感信息在 Spring Boot 配置文件里藏不住?这套加密方法帮你 "捂严实"

原创
作者头像
HELLO程序员
发布2025-10-20 13:16:23
发布2025-10-20 13:16:23
2300
举报
一个KEY用国内所有主流大模型,快来AISPACE 现在来,免费送两个月畅享TOKEN
一个KEY用国内所有主流大模型,快来AISPACE 现在来,免费送两个月畅享TOKEN

面试时被追问:“Spring Boot 配置文件里的数据库密码、Redis 密钥这些敏感信息,怎么防止被无权人员看到?”

这不仅是面试官的高频考点,更是实际开发中绕不开的安全红线。

在开发 Spring Boot 项目时,你是否曾在配置文件里明晃晃地写着数据库密码、API 密钥这些敏感信息?推到代码仓库时心惊胆战,生怕被人看到;部署到服务器后更是如鲠在喉,总担心哪天被恶意爬取——毕竟,明文暴露敏感信息堪称系统安全的“定时炸弹”。

别慌!今天就手把手带你用 `jasypt-spring-boot-starter` 给配置文件“上锁”。这个 Spring Boot 官方都推荐的加密神器,能让你用最少的代码、最简单的步骤,把明文密码变成加密密文,启动时自动解密还不影响业务逻辑。哪怕是加密新手,跟着这篇教程走,10 分钟就能给敏感信息穿上“防弹衣”,彻底告别配置文件“裸奔”的风险。

01

环境搭建

首先引入maven依赖

代码语言:javascript
复制
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

然后就需要将这样的配置进行加密

02

生成加密后的密文

需要将配置文件中的明文(如数据库密码)加密为密文,有 3 种方式生成:

方式 1:用 Jasypt 提供的工具类

在项目中写一个测试方法,调用 Jasypt 的加密工具:

代码语言:javascript
复制
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 命令行工具

  1. 下载 Jasypt 工具包:下载 jasypt-1.9.3-dist.zip(版本需与依赖兼容)。
  2. 解压后进入 bin 目录,执行加密命令:
代码语言:javascript
复制
# Linux/Mac
./encrypt.sh input="root123" password="你的密钥" algorithm=PBEWithMD5AndDES
# Windows
encrypt.bat input="root123" password="你的密钥" algorithm=PBEWithMD5AndDES
  • input:要加密的明文
  • password:加密密钥(与项目中配置的一致)
  • algorithm:加密算法(默认与 starter 兼容,可不填)

3. 输出结果中 OUTPUT 即为密文。

方式 3:Maven 插件(可选)

在 pom.xml 中添加插件,通过 Maven 命令生成:

代码语言:javascript
复制
 <build>
        <plugins>
            <plugin>
                <groupId>com.github.ulisesbocchio</groupId>
                <artifactId>jasypt-maven-plugin</artifactId>
                <version>3.0.5</version>
            </plugin>
        </plugins>
    </build>

执行命令

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档