You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot应用中安全隐藏数据库凭据?

Spring Boot 3.0.5数据库凭据安全隐藏解决方案

问题场景

用Spring Boot 3.0.5在Ubuntu系统的IntelliJ IDEA中开发,想把application.properties里的数据库用户名、密码安全隐藏。之前试过在~/.zshrc里设置DB_USERNAME、DB_PASSWORD环境变量,配置文件里用${DB_USERNAME}引用,但运行时环境变量没被识别,触发数据库连接权限错误。临时用脚本设置环境变量能解决问题,但测试场景下用着太麻烦,需要更靠谱的方案。

推荐方案:Jasypt加密数据库凭据

用Jasypt加密是Spring Boot项目中隐藏敏感配置的常用方案,操作步骤如下:

1. 添加Jasypt依赖到pom.xml

先把Jasypt的Spring Boot Starter依赖加到项目的pom.xml里,适配Spring Boot 3.0.5的版本可以用3.0.5:

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2. 用Maven命令加密明文凭据

在项目根目录打开终端,执行Maven命令加密你的数据库用户名和密码。比如要加密密码your_db_password,加密密钥用your_secure_key(记得换成自己的安全密钥):

mvn jasypt:encrypt-value -Djasypt.encryptor.password=your_secure_key -Djasypt.plugin.value=your_db_password

执行完成后会输出加密后的字符串,格式是ENC(xxxxxx...),把这个字符串保存好。

3. 在IDEA中配置VM参数

启动Spring Boot应用时,需要把加密密钥通过VM参数传给应用:

  • 打开IDEA的「Run/Debug Configurations」
  • 在「VM options」输入框中添加:
-Djasypt.encryptor.password=your_secure_key

注意这里的密钥要和加密时用的完全一致。

4. 修改application.properties配置

把原来的明文用户名、密码替换成加密后的字符串,同时可以根据需要配置Jasypt的加密算法(默认配置也能正常用):

# 数据库配置
spring.datasource.username=ENC(加密后的用户名字符串)
spring.datasource.password=ENC(加密后的密码字符串)

# 可选:自定义Jasypt加密配置
jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator

补充:环境变量配置的正确姿势(解决之前失效问题)

之前在~/.zshrc配置环境变量没生效,大概率是IDEA没读取到终端的环境变量。可以用这两种方法解决:

  • 从终端启动IDEA:在Ubuntu终端执行nohup idea.sh &,这样IDEA会继承终端的环境变量,配置文件里的${DB_USERNAME}就能正常识别。
  • 直接在IDEA配置环境变量:
    1. 打开「Run/Debug Configurations」
    2. 找到「Environment variables」选项,点击加号添加:
      • DB_USERNAME=你的数据库用户名
      • DB_PASSWORD=你的数据库密码
    3. 配置文件里保持原来的引用方式即可:
      spring.datasource.username=${DB_USERNAME}
      spring.datasource.password=${DB_PASSWORD}
      

这种方式在测试场景下直接用,不用每次跑脚本。

内容的提问来源于stack exchange,提问作者EDOYou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:45:23