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())的安全至关重要,不要将其暴露在不安全的环境中。

相关推荐
编程乐学(Arfan开发工程师)3 分钟前
信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
java·开发语言·javascript·python
Filotimo_8 分钟前
在java开发中:JSON序列化和JSON反序列化
java·microsoft·json
czlczl2002092510 分钟前
SpringBoot实践:从验证码到业务接口的完整交互生命周期
java·spring boot·redis·后端·mysql·spring
Han_coding120812 分钟前
从原理到实战:基于游标分页解决深分页问题(附源码方案)
java·服务器·数据库·spring boot·spring cloud·oracle
二等饼干~za89866812 分钟前
碰一碰发视频系统源码开发搭建--技术分享
java·运维·服务器·重构·django·php·音视频
ss27315 分钟前
线程池优雅关闭:线程池生命周期管理:四种关闭策略的实战对比
java·jvm·算法
不能只会打代码19 分钟前
蓝桥杯--生命之树(Java)
java·算法·蓝桥杯·动态规划·贪心
多则惑少则明20 分钟前
AI大模型实用(九)Java快速实现智能体整理(使用LangChain4j-agentic + Tool)
java·人工智能·springai·langchain4j
与遨游于天地21 分钟前
深入了解 Java `synchronized`:从对象头到锁升级、线程竞争感知
java·开发语言·c#
天天摸鱼的java工程师23 分钟前
Kafka 消息积压处理实战:百万级队列清空的优化技巧
java·后端