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敏感信息加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud使用feign调用错误的问题

    SpringCloud使用feign调用错误的问题

    这篇文章主要介绍了SpringCloud使用feign调用错误的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • java实现http请求工具类示例

    java实现http请求工具类示例

    这篇文章主要介绍了java实现http请求工具类示例,需要的朋友可以参考下
    2014-05-05
  • Java中自增和自减操作符(++/--)的那些事

    Java中自增和自减操作符(++/--)的那些事

    这篇文章主要给大家介绍了关于Java中自增和自减操作符(++/--)的那些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Spring中七种事务传播机制详解

    Spring中七种事务传播机制详解

    这篇文章主要介绍了Spring中七种事务传播机制详解,Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,Propagation枚举则引用了这些类型,开发过程中我们一般直接用Propagation枚举,需要的朋友可以参考下
    2024-01-01
  • 关于springboot配置文件密文解密方式

    关于springboot配置文件密文解密方式

    这篇文章主要介绍了关于springboot配置文件密文解密方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java设计模式之策略模式详解

    Java设计模式之策略模式详解

    这篇文章主要为大家详细介绍了Java设计模式之策略模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Java排序算法之选择排序代码实例

    Java排序算法之选择排序代码实例

    这篇文章主要介绍了Java排序算法之选择排序代码实例,从数组的第一个元素开始,每次遍历数组找出一个最小值放在最左侧,第二次从第二个元素开始,依次类推,直到起始元素为数组的倒数第二个元素时,直接和最后一个元素比较,较小值放左边,完成排序,需要的朋友可以参考下
    2023-11-11
  • Spring基于注解的缓存声明深入探究

    Spring基于注解的缓存声明深入探究

    spring boot对缓存支持非常灵活,我们可以使用默认的EhCache,也可以整合第三方的框架,只需配置即可,下面这篇文章主要给大家介绍了关于SpringBoot学习之基于注解缓存的相关资料,需要的朋友可以参考下
    2022-08-08
  • 学习Java模拟实现百度文档在线浏览

    学习Java模拟实现百度文档在线浏览

    这片文章介绍了如何使用Java模拟实现百度文档在线浏览,文章思路清晰,需要的朋友可以参考下
    2015-07-07
  • Java 动态编译在项目中的实践分享

    Java 动态编译在项目中的实践分享

    在 Java 中,动态编译是指在运行时动态地编译 Java 源代码,生成字节码,并加载到 JVM 中执行,动态编译可以用于实现动态代码生成、动态加载、插件化等功能,本文将给大家分享一下Java 动态编译在项目中的实践,感兴趣的同学跟着小编一起来看看吧
    2023-07-07

最新评论