SpringBoot yml配置敏感信息加密的实现

 更新时间:2025年08月22日 10:05:38   作者:pointer  
本文主要介绍了SpringBoot yml配置敏感信息加密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 Spring Boot 项目里运用 Jasypt 实现配置文件的加密。

第一步:添加依赖

要在pom.xml文件中添加 Jasypt 的依赖。

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

第二步:配置加密密钥

有两种方式可以配置加密密钥,分别是通过环境变量和命令行参数。

环境变量方式

application.properties或者application.yml中设置如下内容:

jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}

命令行参数方式

启动应用程序时,使用以下命令添加参数:

java -Djasypt.encryptor.password=your-secret-key -jar your-application.jar

第三步:生成加密值

下面是一个工具类,可用于生成加密值:

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;

public class JasyptUtils {
    public static void main(String[] args) {
        // 加密密钥,实际使用时可通过环境变量或其他安全方式获取
        String password = "your-secret-key"; 
        String plainText = "需要加密的内容";

        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();
        
        config.setAlgorithm("PBEWithMD5AndDES");
        config.setPassword(password);
        encryptor.setConfig(config);
        
        String encryptedText = encryptor.encrypt(plainText);
        String decryptedText = encryptor.decrypt(encryptedText);
        
        System.out.println("原始文本: " + plainText);
        System.out.println("加密后: ENC(" + encryptedText + ")");
        System.out.println("解密后: " + decryptedText);
    }
}

第四步:在配置文件中使用加密值

在配置文件里按照如下格式使用加密值:

# 数据库配置示例
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=ENC(加密后的用户名)
spring.datasource.password=ENC(加密后的密码)

第五步:验证配置

启动应用程序时,要确保已经正确设置了加密密钥。Jasypt 会在应用启动时自动对加密值进行解密。

注意事项

  • 加密密钥属于敏感信息,不能硬编码在代码或者配置文件中。建议通过环境变量、CI/CD 工具或者 Kubernetes Secret 等安全方式来管理。
  • 可以根据实际需求调整加密算法,例如使用更安全的PBEWITHHMACSHA512ANDAES_256
  • 要妥善保管好加密密钥,一旦丢失,将无法对已加密的内容进行解密。

通过上述步骤,你就能在 Spring Boot 项目中安全地使用 Jasypt 对配置信息进行加密了。

到此这篇关于SpringBoot yml配置敏感信息加密的是西安的文章就介绍到这了,更多相关SpringBoot yml敏感信息加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring事务失效场景及解决过程

    Spring事务失效场景及解决过程

    这篇文章主要介绍了Spring事务失效场景及解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • 如何解决Spring MVC中响应乱码问题

    如何解决Spring MVC中响应乱码问题

    这篇文章主要介绍了如何解决Spring MVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Java之SpringBoot实现基本增删改查(前后端分离版)

    Java之SpringBoot实现基本增删改查(前后端分离版)

    这篇文章主要介绍了Java中SpringBoot如何实现基本的增删改查,前后端分离版,没有和前端进行联系,感兴趣的小伙伴可以借鉴阅读本文
    2023-03-03
  • 关于cron表达式每天整点执行一次的问题

    关于cron表达式每天整点执行一次的问题

    这篇文章主要介绍了关于cron表达式每天整点执行一次的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 深入理解Java8新特性之Stream API的创建方式和中间操作步骤

    深入理解Java8新特性之Stream API的创建方式和中间操作步骤

    Stream是Java8的一大亮点,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation)或者大批量数据操作。Stream API借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性,感兴趣的朋友快来看看吧
    2021-11-11
  • 浅谈使用setBounds()方法需要注意的地方

    浅谈使用setBounds()方法需要注意的地方

    下面小编就为大家带来一篇浅谈使用setBounds()方法需要注意的地方。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java设计模式之原型模式详细解读

    Java设计模式之原型模式详细解读

    这篇文章主要介绍了Java设计模式之原型模式详细解读,原型模式属于创建型设计模式,用于创建重复的对象,且同时又保证了性能,该设计模式的好处是将对象的创建与调用方分离,需要的朋友可以参考下
    2023-12-12
  • Java文件操作与IO流详解(File类+字节流+字符流)

    Java文件操作与IO流详解(File类+字节流+字符流)

    文章主要介绍了文件、路径和文件类型(文本文件和二进制文件)的概念,并详细介绍了Java中File类和FileInputStream、FileOutputStream、FileReader、FileWriter等几个流类的操作方式,需要的朋友可以参考下
    2026-04-04
  • Springboot数据层开发全解析

    Springboot数据层开发全解析

    本文介绍了SpringBoot数据层开发中数据源自动管理的配置方法,介绍了springboot整合jdbcTemplate、Springboot整合mybatis注解版、Springboot整合mybatis配置文件,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Java RMI引起的log4j漏洞问题重现

    Java RMI引起的log4j漏洞问题重现

    java的log4j框架出现了一个大漏洞对服务器案例引起了不小的影响,如果你使用的是spring框架,用的是logback,不受这个问题的影响,下面跟着小编看下Java RMI引起的log4j漏洞问题重现,感兴趣的朋友一起看看吧
    2021-12-12

最新评论