对SpringBoot项目配置文件进行加密实现过程

 更新时间:2025年10月24日 10:36:02   作者:云信酱  
文章介绍了如何在Spring Boot项目中使用Maven依赖和单元测试生成加密数据,并将加密数据配置在`bootstrap.yml`或`application.yml`中,同时,分享了如何在不同环境中配置加密盐,包括IDE启动项、配置文件和Dockerfile

1.SpringBoot项目pom添加maven依赖

<!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2.使用单元测试生成加密数据

设置配置文件(bootstrap.yml或者application.yml)

jasypt:
  encryptor:
    password: jasypt!di@soc
    algorithm: PBEWithMD5AndDES
  • password:加密的盐
  • algorithm:加密算法,这里使用 PBEWithMD5AndDES

运行单元测试文件

package com.pscsoft.code.isoc;

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;
import org.springframework.context.annotation.Import;

/**
 * @author avry.jiang
 * @date 2023-06-28 17:45:58
 */
@SpringBootTest()
@Import({IsocApplication.class})
public class JasyptUtilTest {

    @Autowired
    private StringEncryptor encryptor;

    @Test
    public void jasypt() {
        String name = encryptor.encrypt("12345678");
        System.out.println("en: " + name);
        System.out.println("de: " + encryptor.decrypt(name));
    }

}

执行结果:

3.在SpringBoot项目中使用

配置mysql的jdbc,使用“ENC(密文)”配置密码,其他配置有密码都类似修改

4.将加密盐放入配置文件、启动环境或者启动命令中

4.1.Idea启动项配置

--jasypt.encryptor.password=jasypt!di@soc --jasypt.encryptor.algorithm=PBEWithMD5AndDES

4.2.配置文件(不推荐,会暴露加密盐反推明文的)

jasypt:
  encryptor:
    password: jasypt!di@soc
    algorithm: PBEWithMD5AndDES

4.3.其他

如果是docker启动,可以配置在Dockerfile中指定启动命令

ENTRYPOINT ["java","-jar","-Xms1024m", "-Xmx1024m","--jasypt.encryptor.password=jasypt!di@soc","--jasypt.encryptor.algorithm=PBEWithMD5AndDES", "/xxx/xxx.jar"]

启动项目即可~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot项目多模块项目中父类与子类pom.xml的关联问题小结

    SpringBoot项目多模块项目中父类与子类pom.xml的关联问题小结

    这篇文章主要介绍了SpringBoot项目多模块项目中父类与子类pom.xml的关联问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-04-04
  • SpringBoot集成Redis及Redis使用方法

    SpringBoot集成Redis及Redis使用方法

    Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,这篇文章主要介绍了SpringBoot集成Redis及Redis使用方法,需要的朋友可以参考下
    2023-08-08
  • springboot读取自定义配置文件时出现乱码解决方案

    springboot读取自定义配置文件时出现乱码解决方案

    这篇文章主要介绍了springboot读取自定义配置文件时出现乱码解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • List转换成Map工具类的简单实例

    List转换成Map工具类的简单实例

    下面小编就为大家带来一篇List转换成Map工具类的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 关于集合和字符串的互转实现方法

    关于集合和字符串的互转实现方法

    下面小编就为大家带来一篇关于集合和字符串的互转实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 详解java中的synchronized关键字

    详解java中的synchronized关键字

    这篇文章主要介绍了java中的synchronized关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • java多线程CountDownLatch与线程池ThreadPoolExecutor/ExecutorService案例

    java多线程CountDownLatch与线程池ThreadPoolExecutor/ExecutorService案

    这篇文章主要介绍了java多线程CountDownLatch与线程池ThreadPoolExecutor/ExecutorService案例,
    2021-02-02
  • Spring创建Bean的生命周期详析

    Spring创建Bean的生命周期详析

    这篇文章主要介绍了Spring创建Bean的生命周期详析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 详解Java Socket通信封装MIna框架

    详解Java Socket通信封装MIna框架

    Mina异步IO使用的Java底层JNI框架,Mina提供服务端和客户端,将我们的业务解耦开发,真正做到高内聚低耦合的思想。
    2021-06-06
  • 详解Nacos配置中心的实现

    详解Nacos配置中心的实现

    Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:注册中心和配置中心,我们今天来了解和实现一下二者
    2022-08-08

最新评论