网站首页 > 博客文章 正文
Java知识点整理正在进行中,关注我,持续给您带来简单,实用的Java编程技巧。
jasypt是Java中一个用来加密解密的框架。
在实际的项目开发中,程序配置文件中的有些信息实际上是比较敏感的,比如数据库的用户名和密码,直接以明文的方式写在配置文件中会有一定的风险。这时就可以通过jasypt对敏感信息进行加密,达到保护敏感信息的目的。
这里介绍下SpringBoot整合jasypt实现加解密的方法。
步骤:
- 引入jasypt依赖
- 在SpringBoot配置文件中设置jasypt的加密密钥
- 通过代码获得加密后的密文
- 将密文添加到SpringBoot配置文件中
引入jasypt依赖
<!-- 引入jasypt -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
在SpringBoot配置文件中设置jasypt的加密密钥Afei@2018
jasypt:
encryptor:
password: Afei@2018
获得密文的方法,密钥需要和配置文件里的一致
package com.bbzd.mws.util;
import org.jasypt.util.text.AES256TextEncryptor;
import org.jasypt.util.text.BasicTextEncryptor;
import org.jasypt.util.text.StrongTextEncryptor;
/**
* @author Wangjzh
* @date 2022/10/19 - 21:48
*/
public class EncryptUtil {
public static void main(String[] args) {
AES256TextEncryptor basicTextEncryptor = new AES256TextEncryptor();
//设置密钥
basicTextEncryptor.setPassword("Afei@2018");
//encryptString是加密后的密文
String encryptString=basicTextEncryptor.encrypt("root");
System.out.println("encryptString:"+encryptString);
//planString是解密后的明文
String planString=basicTextEncryptor.decrypt(encryptString);
System.out.println("planString:"+planString);
}
}
密文放在ENC()中说明是密文,系统会在使用时自动转为明文
spring:
datasource:
one:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/706lmes?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: ENC(ri1wFv4s5cXv/Ppn7VXIMKaAkjkE1TNHLuozzOU05awcw0+L8MAH2/KUv1VkVppt)
password: ENC(mQbBjZdGegOm3B8Y+9O9oVM1a0dkzoUIhHKiJcGvMdGveu9CbLiWV/g5yjeN1MqB)
type: com.alibaba.druid.pool.DruidDataSource
druid:
filter:
config:
enabled: true
two:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/706lmes?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: ENC(ri1wFv4s5cXv/Ppn7VXIMKaAkjkE1TNHLuozzOU05awcw0+L8MAH2/KUv1VkVppt)
password: ENC(mQbBjZdGegOm3B8Y+9O9oVM1a0dkzoUIhHKiJcGvMdGveu9CbLiWV/g5yjeN1MqB)
type: com.alibaba.druid.pool.DruidDataSource
druid:
filter:
config:
enabled: true
总结:
- jasypt使用起来非常方便,对原来配置文件的修改就是将密文包含在ENC()内
- 加密密钥放在配置文件里是为了开发调试方便,在实际部署时,可以去掉SpringBoot配置文件里的密钥,通过启动参数来将密钥传递到程序中:java -jar -Djasypt.encryptor.password=Afei@2018 server-0.0.1-SNAPSHOT.jar
猜你喜欢
- 2024-11-13 spring boot配置文件敏感字段加密
- 2024-11-13 Spring Boot数据库密码加密的配置方法
- 2024-11-13 Spring Boot安全之application配置信息加密
- 2024-11-13 如何在SpringBoot项目中实现加密?
- 2024-11-13 SpringBoot进阶-SpringBoot如何实现配置文件脱敏?
- 2024-11-13 加密SpringBoot配置文件技巧(加密pdf文件如何解密编辑)
- 2024-11-13 Spring Boot版本和Jasypt版本的兼容性问题?
- 2024-11-13 SpringBoot加密配置属性(springboot配置密码加密)
- 2024-11-13 SpringCloud-OAuth2(二):实战篇(oauth2.0 springcloud)
- 2024-11-13 SpringBoot 配置文件这样加密,才足够安全!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)