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

相关推荐
blammmp17 分钟前
Java:数据结构-枚举
java·开发语言·数据结构
暗黑起源喵35 分钟前
设计模式-工厂设计模式
java·开发语言·设计模式
WaaTong40 分钟前
Java反射
java·开发语言·反射
齐 飞1 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
狂放不羁霸1 小时前
idea | 搭建 SpringBoot 项目之配置 Maven
spring boot·maven·intellij-idea
九圣残炎1 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
wclass-zhengge1 小时前
Netty篇(入门编程)
java·linux·服务器
LunarCod1 小时前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
计算机学长felix2 小时前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友
Re.不晚2 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea