Jasypt整合springboot完成对配置文件中有关敏感数据的加密

场景

项目中有很多密码都是以明文的形式存储在配置文件中,这样很不安全。我们可以通过jasypt来完成敏感信息的加密。

步骤

1、pom文件引入依赖。

xml 复制代码
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

2、写个测试类获取密文。

java 复制代码
        String secret = "haha";
        BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
        basicTextEncryptor.setPassword(secret); //设置密钥
        String s = basicTextEncryptor.encrypt("123456"); //加密
        System.out.println(s);

3、application.yml文件写死密文。

yaml 复制代码
# Spring配置
spring:
  # 数据源配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&&serverTimezone=Asia/Shanghai&&useSSL=false
    username: root
    # 此处的密文要用ENC()进行包裹,不然是识别不了的,自然也就无法解密
    password: ENC(fUaD/g4L9TKx8AFhz8A5qQ==)

# 加密配置
jasypt:
  encryptor:
    # 指定密钥
    password: haha
    # 指定解密算法,需要和加密时使用的算法一致
    algorithm: PBEWithMD5AndDES
    # 指定initialization vector类型
    iv-generator-classname: org.jasypt.iv.NoIvGenerator

线上环境

如果是线上环境,密钥需作为启动参数加进去,这样更安全。

powershell 复制代码
java -jar -Djasypt.encryptor.password=your-secret
相关推荐
Flittly2 分钟前
【AgentScope Java新手村系列】(4)结构化输出
java·spring boot·spring·ai
techdashen5 分钟前
Rust 基础设施团队 2025 Q4 回顾与 2026 Q1 计划
开发语言·后端·rust
何以解忧,唯有..14 分钟前
Python 中的继承机制:从基础到高级用法详解
java·开发语言·python
Yiyaoshujuku19 分钟前
化合物数据集API接口(数据结构及样例)
java·网络·数据结构
神奇小汤圆20 分钟前
互联网大厂精选面试八股文(附2026最新Java+AI高频题)| 建议收藏
后端
春天花会开13124 分钟前
影像上传前置机网络架构设计模板(含VPN)
后端·架构
程序员cxuan28 分钟前
Fable 5 的系统提示词被人扒出来了,精彩,太精彩了。
人工智能·后端·程序员
神奇小汤圆31 分钟前
颠覆认知:Java 打破双亲委派 ≠ 彻底废弃双亲委派模型
后端
plainGeekDev31 分钟前
算法刷题笔记:一维DP没那么难,状态想清楚就赢了一半
java·算法·面试
IceBing37 分钟前
还在一个个连接 Arthas?这个开源平台支持批量诊断 JVM
java