logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

jasypt

在Spring Boot中,可以使用jasypt(Java Simplified Encryption)库来对敏感配置信息进行加密,官方文档地址

依赖

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

中央仓库版本浏览

配置

方法一:在配置文件中配置加密密钥(不推荐)

jasypt:
  encryptor:
    password: your_password

加密密钥存放在配置文件中是不安全的,一旦配置文件泄露,所有加密的数据等同于没有加密

方式二:在项目启动时配置加密密钥(推荐)

java -jar demo.jar  -Djasypt.encryptor.password= your_password

方式三:IDEA开发指定

Edit Configurations ...中找到Modify options,勾选Environment variables环境变量,并加入对应的参数,如:

--jasypt.encryptor.password=1jHf8GnL4pKq7E90

如果使用Test,同理配置即可

加密

首先,对需要加密的信息进行加密,注意,一定要配置jasypt.encryptor.password,可以通过启动指定

import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;

@SpringBootTest
public class JasyptTest {

    @Resource
    private StringEncryptor stringEncryptor;

    @Test
    void test() {
        System.out.println("加密结果:" + stringEncryptor.encrypt("192.168.0.201"));
    }

}

获取到加密后的url、password、username,在配置文件中进行配置,使用ENC()将加密后的字符串包裹

data:
  url: ENC(wRmYMwEop6JEbMr9zem6KWoVCnvjmOUWVnYbLnC8EXUzTbWzlIiQXlZRsHoRe2wdbqFW6qcJ6ruODSBchWvYK+wzqXPmJyjGUi8ggXKSSJiF3H1K9WtliPxf3ns6zj1yUToYSMZg4Hqf47iXMBGZmWySkPDPKhxM+MjCSxO4DhfKKPq7jHW6bIaqFm2VdoThF5nZXAT7FZZ5Egh+PGAxdnlFbeilCTHyzwEUsS80TS7j3wPFMjF/krataPPgp/KPSftXw6l0cJ2q8tnXkgKuYZ+Nmw8QbsuEApgYARooYic=)
  username: ENC(KFIkzv1QV0oaYMzgHjlefmzbonWZMVA9vzBEx6TnlHGAGO1AolOKQD/FrTegZoqf)
  password: ENC(t2L79RtORPH1UcE9R1g5OYLN9zDVvo9VLNPQmx5cD50AzDxNT2zIdGRGxhW8PgxL)
jasypt
依赖
配置
加密