springboot整合ENC加密解密

以redis为例,连数据库、连mq操作也一样

步骤 1: 添加Jasypt依赖

在Maven项目的pom.xml中添加如下依赖:

xml 复制代码
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version> <!-- 版本自己挑 -->
</dependency>

步骤 2: 加密Redis密码

创建个配置类,设置一下加密信息,这里我使用 PooledPBEStringEncryptor类演示:

java 复制代码
@Bean(name = "jasyptStringEncryptor")
public StringEncryptor getStringEncryptor() {
    PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
    SimpleStringPBEConfig config = new SimpleStringPBEConfig();
    config.setPassword("woshimiyao");	// 配置秘钥
    config.setPoolSize("1");
    encryptor.setConfig(config);

    System.out.println("加密后:" + encryptor.encrypt("redismima"));
    
    return encryptor;
}

步骤 3: 在Redis配置中使用加密密码

假如上面控制台输出的结果是:encryptedRedisPwd

然后,在你的Spring Boot应用的配置文件中,像这样配置Redis,使用ENC()包裹加密后的密码:

yml 复制代码
spring:
  redis:
    host: localhost
    port: 6379
    password: ENC(encryptedRedisPwd)

步骤 4: 启动Spring Boot应用

重点:Spring Boot应用启动时,Jasypt的自动配置会自动检测并解密配置中使用ENC()标记的值,因此你不需要在代码中手动解密Redis密码。

注意:加密密钥(上面的config.setPassword())的安全至关重要,不要将其暴露在不安全的环境中。

相关推荐
用户761016088471 小时前
黑马RabbitMQ 从入门到可靠性:收发、持久化、死信延迟一篇打通
后端
Bazingga1 小时前
Transformer与自注意力机制:一台"全员检索"机器的说明书
人工智能·后端
Shaoshing1 小时前
消息顺序
java·开发语言
星辰云-1 小时前
# 基于Spring Boot的德州特产扒鸡商城系统(毕设|源码|论文|演示视频)
spring boot·后端·课程设计
武子康2 小时前
同为7/8,错误样本却不同:Agent Grader 分歧复算
人工智能·后端·agent
茉莉玫瑰花茶2 小时前
GO [ 内存与变量逃逸分析 ]
开发语言·后端·golang
星辰云-2 小时前
基于Spring Boot的旅游景点票务系统的设计与实现(毕设项目,附完整源码)
spring boot·后端·课程设计
我命由我123452 小时前
SQL 检测脚本
java·数据库·sql·功能测试·单元测试·压力测试·可用性测试
Hpc_Fun2 小时前
GPU 工作站品牌怎么比?五把可核验尺子、加权评分脚本与场景重排
java·信创·gpu工作站·品牌对比·加权评分
const_qiu2 小时前
第四章 03:4.3 Tools —— 让 Agent 会用工具
java·人工智能