当前位置: 首页 > article >正文

spring boot整合Jasypt实现配置加密

文章目录

目录

文章目录

前言

一、Jasypt是什么?

二、使用步骤

1.引入

2.测试使用 

3.结果 

总结



前言


一、Jasypt是什么?

Jasypt(Java Simplified Encryption)是一个Java库,提供了一种简单的加密解密方式,可用于保护敏感数据,例如密码、API密钥和数据库连接信息等。

Jasypt 提供了多种加密算法,包括标准的对称加密算法(如 DES、TripleDES、AES)、非对称加密算法(如 RSA)以及哈希函数(如 MD5、SHA-1)。它还支持基于口令的加密,这意味着你可以使用一组简单的密码来保护你的数据,而不必担心复杂的密钥管理操作。

Jasypt 与 Spring 框架集成良好,可以轻松地将其与 Spring Boot 应用程序一起使用。它还提供了自定义实现的接口,可以与其他应用程序框架或库进行集成。

在使用 Jasypt 进行加密时,通常需要设置一个盐值,以增加加密过程的安全性。盐值是一个随机生成的字符串,将其与待加密数据结合在一起,使得同样的明文每次加密后得到的密文都不同,增加了破解的难度。

综上所述,Jasypt 是一个易于使用和配置的 Java 加密库,适用于任何需要保护敏感数据的应用程序。

二、使用步骤

1.引入

<!-- 配置文件参数加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2.测试使用 

启动类的添加注解

@SpringBootApplication
@EnableEncryptableProperties//开启自动解密功能
public class SpringRetryApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringRetryApplication.class, args);
    }

}

jasypt配置类

@Configuration
public class JasyptConfig {

    @Bean("jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        //设置加密算法
        encryptor.setAlgorithm("PBEWithMD5AndDES");
        // 设置盐值
        encryptor.setPassword("salt2"); 
        return encryptor;
    }
}

application.properties配置

固定格式ENC()括号里面是加密后的密文 然后实现自动解密 

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/carrent?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=ENC(mkCsYhIdnb3XWbiHyjsWGA==)

3.结果 

正常启动 spring boot 然后查询表数据正常


总结


http://www.kler.cn/a/145360.html

相关文章:

  • Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.30 性能巅峰:NumPy代码优化全攻略
  • Flutter使用Flavor实现切换环境和多渠道打包
  • 16.Word:石油化工设备技术❗【28】
  • Vue.js `setup()` 函数的使用
  • 渗透测试之WAF规则触发绕过规则之规则库绕过方式
  • tidyverse数据特征学习
  • 斐波那契数(力扣LeetCode)动态规划
  • 超声波雪深传感器冬季里的科技魔法
  • 3、Qt使用windeploy工具打包可执行文件
  • 复数及其代数运算
  • itop4412移植lrzsz工具踩坑笔记
  • 【Java】实现一个自己的定时器
  • Ansible的错误处理
  • JVM虚拟机:G1垃圾回收器的日志分析
  • C++中声明友元
  • 90. 打家劫舍II (房子围成一圈)
  • 【理解ARM架构】操作寄存器实现UART | 段的概念 | IDE背后的命令
  • linux shell操作 - 05 进程 与 IO 模型
  • vue--The template root requires exactly one element.的解决办法
  • RT-DETR 更换损失函数之 SIoU / EIoU / WIoU / Focal_xIoU
  • 【LeetCode】挑战100天 Day17(热题+面试经典150题)
  • 第四题-abb 【第六届传智杯程序设计挑战赛解题分析详解复盘】(JavaPythonC++实现)
  • 【数据结构实验】排序(一)冒泡排序改进算法 Bubble及其性能分析
  • 数据结构-归并排序+计数排序
  • leetcode中“辅助栈”类题目和“单调栈”类题目的异同