【springboot中jasypt-spring-boot-starter的使用】
目录
- 1. 简介
- 2. 引入依赖
- 3. 自定义加解密的方式
- 4. 获取密文
- 5. 编写配置文件
- 6. 验证结果
1. 简介
在项目开发的过程中,经常会需要在配置文件中存储一些敏感的信息,如数据库的账号密码,支付相关信息,密钥等等,这些信息在开发的过程中一般是以明文的方式存储在配置文件中。这种方式的存储会存在非常大的安全隐患。jasypt能够很好的解决这一类的问题,特此记录,一遍后面学习使用。
2. 引入依赖
<!--springboot整合jasypt--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
3. 自定义加解密的方式
/**
* @description:
* @author: WangYX
* @create: 2022-03-09 16:00
* @Version: 1.0.0
**/
@Configuration
@Component("desencrypt")
public class DefaultEncryptor implements StringEncryptor {@Value("${jasypt.encryptor.password}")private int password;/*** 加密方法** @param s* @return*/@Overridepublic String encrypt(String s) {return s;}/*** 解密方法** @param s* @return*/@Overridepublic String decrypt(String s) {/*** 凯撒解密*/String decrypt = CaesarCipher.decrypt(s, password);return decrypt;}
}
这里说一下,这里只是重写了解密的方法,加密的方法并没有写。原因是在使用的过程中只使用了解密的功能。密文是在事先准备好的直接存放在配置文件中。
这里使用的加密方式是凯撒加密。凯撒加密的方式可以看这里 :凯撒加密
而且这里的自定义的加解密方式是完全可以不写的,jasypt中本身就提供了加解密的方法,我们完全可以忽略这块。但是自定义加解密方式可以提供安全性,即是别人拿到我们的密文,在不知道解密方法的情况下也是无用的。
4. 获取密文
public static void main(String[] args) {String account = "root";String password = "123456";String newAccount = CaesarCipher.encrypt(account, 123);String newPassword = CaesarCipher.encrypt(password, 123)System.out.println(newAccount);System.out.println(newPassword);}
这里是事先准备密文的方法,把数据库的账号密码直接使用凯撒密码加密。
5. 编写配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/operate_log
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=ENC(1..3)
spring.datasource.password=ENC(NOPQRS)jasypt.encryptor.password=123
jasypt.encryptor.bean=desencrypt
在配置文件中的数据库的账号密码均使用了jasypt的方式进行加解密。
spring.datasource.username=ENC(1..3)
spring.datasource.password=ENC(NOPQRS)
jasypt中密文需要放置在ENC()中。这里的ENC()前后缀可以自定义进行配置(这里暂时不进行叙述)。
jasypt.encryptor.password=123
jasypt.encryptor.bean=desencrypt
jasypt.encryptor.password属性指明了凯撒密码的位移量。在自定义的加密类中使用。
jasypt.encryptor.bean=desencrypt该属性指明了jasypt中使用的加解密类。
6. 验证结果
项目在开始运行之后,在读取配置文件时ENC()中的数据,会自动使用jasypt中的加解密文件进行解密替换。
成功运行。
【springboot中jasypt-spring-boot-starter的使用】相关推荐
- 手把手教你定制标准 Spring Boot starter
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 写在前面 我们每次构建一个 Spring 应用程序时,我 ...
- 一个简易上手的短信服务Spring Boot Starter,连傻瓜都会!
作 者:jackieonway 来 源:jianshu.com/u/36510c75d37c 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式 ...
- 自定义 Spring Boot Starter
一.引言 什么是Spring Boot Starter呢?我们直接来看看官网是怎么介绍的吧. Starters are a set of convenient dependency descripto ...
- Spring boot starter
1:Spring boot starter及项目中的类似运用 1:Spring boot starter的两种方式 引入pom文件,自动管理jar版本 根据spring.factories配置文件,加 ...
- 《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七》
目录 Spring Boot Starter项目创建 自动创建客户端 使用 Starter 使用注解开启 Starter 自动构建 使用配置开启 Starter 自动构建 配置 Starter 内容提 ...
- 实现一个 Spring Boot Starter 原来如此简单,读 Starter 源码也不在话下
我是风筝,公众号「古时的风筝」,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者.现已转行程序员鼓励师 Spring Cloud 系列文章已经完成,可以 ...
- SpringBoot开发之Spring Boot入门
SpringBoot开发之SpringBoot入门 一.Spring Boot概述 1.什么是Spring Boot 2.Spring Boot的优点 二.第一个Spring Boot应用 1.创建S ...
- 在SpringBoot中使用Spring Session解决分布式会话共享问题
在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...
- 一个项目有两个pom_实现一个Spring Boot Starter超简单,读 Starter 源码也不在话下...
Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置.不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置 ...
- 快速开发一个自定义 Spring Boot Starter ,希望你也会
来源:http://t.cn/Ai9li9fC 众所周知,Spring Boot由众多Starter组成,随着版本的推移Starter家族成员也与日俱增.在传统Maven项目中通常将一些层.组件拆分为 ...
最新文章
- 是否可以将标志传递给Gulp以使其以不同方式运行任务?
- leetcode-【中等题】5. Longest Palindromic Substring
- windows的键盘输入重定向
- 3.9 神经网络解决多分类问题-机器学习笔记-斯坦福吴恩达教授
- git拉取分支报错:fatal:‘XXX' is not a commit and a branch ‘XXX' cannot be created from
- 分享我工作10年收藏的程序员技术网站
- 【OpenJ_Bailian - 2299 】Ultra-QuickSort (归并排序 或 离散化 + 树状数组)
- ftp 根据特定正则匹配文件名 下载到本地 并且上传文件到ftp java *** 最爱那水货...
- jquery梳理之常用选择器
- HDU1285 确定比赛名次【拓扑排序】
- python金融数据分析电子版_python 金融大数据分析 pdf
- iOS 监听锁屏/解锁事件
- 【转载】数据中心网络架构浅谈
- 基础知识系列博客——计算机组成原理
- HDU 5594(ZYB's Prime-网络流)
- 【程序哥】分析 网易一元夺宝是否有作弊空间,真像媒体所说的吗?
- Excel 自定义下拉菜单
- HTML编写个人日记,HTML学习日记(1-基础)
- iOS开发关于block和局部变量和全局变量
- 文本基本样式及盒模型