Jasypt加密

article/2025/10/8 22:22:01

使用场景

我们的一些项目的配置文件中难免会有一些敏感的配置信息,虽然现在都用alibaba的nacos,但是如果我们有些项目不是分布式的话,我们就需要处理一下。接下来我们就来看看,如何使用jasypt对敏感信息加密。

搭建SpringBoot项目

我们直接从start.spring.io直接构建就好了,我们就不在进行阐述了,我们打开项目,然后加入以下依赖,如下:

	<dependencies><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</version></dependency></dependencies><build><plugins><plugin><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-maven-plugin</artifactId><version>3.0.3</version></plugin></plugins></build>

编写配置

# 加密、解密用的密码
jasypt.encryptor.password=didispace
# 个性化配置
person.name=lisi
person.password=administrator

配置类:

@Component
@Slf4j
@Data
public class SystemConfig {@Value("${person.name}")private String name;@Value("${person.password}")private String password;public String toString(){log.info("name:{},password:{}",name,password);return name+","+password;}
}

启动入口:

@SpringBootApplication
public class JasyptApplication implements ApplicationRunner {@Autowiredprivate SystemConfig config;public static void main(String[] args) {SpringApplication.run(JasyptApplication.class, args);}@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println(config.toString());}
}

使用命令对其加密

对要加密的属性,使用DEC()修饰,如下:

person.password=DEC(administrator)

然后我们使用以下命令,(注意这里的密码就是jasypt.encryptor.password)如下:

mvn jasypt:encrypt -Djasypr.encryptor.password=didispace

在这里插入图片描述
此时的属性配置就变成了ENC(),某些属性配置被加密了,这样算是保护项目的手段之一。那我们公司内部人员开发的时候,需要查看明文是什么,执行以下命令,解密配置文件中的属性值只会在控制台里面输出,配置文件中依旧是秘文。如下:

mvn jasypt:decrypt -Djasypt.encryptor.password=didispace

在这里插入图片描述

如何处理配置文件中的加密密码呢?

这里我们还疏忽了一点,就是我们的加密密码还在配置文件中,我们可以这样做,步骤如下:

  1. 首先,将密码配置去掉,内容如下:
person.name=lisi
person.password=DEC(administrator)
  1. 使用命令将配置加密,命令如下:
mvn jasypt:encrypt -Djasypr.encryptor.password=didispace

配置加密后,内容如下:

person.name=lisi
person.password=ENC(6CtwtxVn8mNu9qwFdxUfsiruwN9JnNW7s8fGLEPCDXqmQco93/RWeuYf9La0UEnk)
  1. 因为配置文件中没有配置jasypt的密码,那么我们用maven命令是无法打包的,我们可以使用以下命令将项目打成jar包,命令如下:
mvn jasypt:encrypt -Djasypt.encryptor.password=didispace  install
  1. 此时我们直接使用命令是无法运行jar包的,因为现在密码是加密的,我们的sysconfig配置类无法完成属性注入,如下:
    在这里插入图片描述
  2. 我们通过命令行传入参数的方式启动jar包,命令如下:
 java -jar jasypt-0.0.1-SNAPSHOT.jar --jasypt.encryptor.password=didispace
  1. 我们打开jar包看下配置文件的内容是不是加密的,如下

    这样我们就做到了没有配置密码情况下对项目、jar包的保护!!!

http://chatgpt.dhexx.cn/article/Qqqa4Prr.shtml

相关文章

【Jasypt】springboot集成Jasypt配置文件加密

背景 随着互联网的不断发展&#xff0c;信息安全越来越被人们所重视&#xff0c;对一些敏感信息的加密要求也越来越高。按等保要求&#xff0c;项目配置文件里的明文密码导致的数据泄漏等问题也需要解决。本文简单介绍基于Jasypt的配置文件加密使用&#xff08;jasypt-spring-…

Jasypt加密库基本使用方法

目录 1 Jasypt简介... 2 基础知识回顾... 3 Jasypt基本加密器... 4 JasyptPBE加密器... 5 Jasypt池化加密器... 6 Jasypt客户端工具... 7 JasyptSpringboot基本用法... 8 JasyptSpringboot自定义加密器... 9 JasyptSprin…

spring boot使用jasypt加密原理解析

目录 版本对应的坑 关键技术点 源码解析 将jar包引入到spring boot中 EnableAutoConfiguration原理 JasyptSpringBootAutoConfiguration 一是其Import的StringEncryptorConfiguration.class 二是其对spring环境中包含的PropertySource对象的处理 一是AbstractApplicat…

使用 Jasypt 为Spring Boot配置文件中的密码加密

在本教程中&#xff0c;我将指导您如何加密Spring Boot应用程序配置文件&#xff08;应用程序.properties或应用程序.yml&#xff09;中的敏感信息&#xff0c;例如数据源的用户名和密码&#xff0c;SMTP服务器的凭据等...使用Jasypt 库 – 为了提高基于Spring框架的Java应用程…

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

Spring Boot 配置文件加解密 一、Jasypt简介二、集成方法2.1 方式一2.2 方式二2.3 方式三 三、Springboot整合Jasypt实战3.1 引入依赖3.2 编写配置类&#xff0c;配置相关信息3.3 使用Jasypt对数据库密码加密&#xff0c;并替换明文3.4 查看执行结果 四、拓展4.1 关于加解密秘钥…

【springboot】jasypt加密

参考&#xff1a; https://blog.csdn.net/enthan809882/article/details/105529349https://amore.blog.csdn.net/article/details/111468221https://blog.csdn.net/weixin_49076592/article/details/119797675 Jasypt Jasypt是加密库&#xff0c;支持密码、Digest认证、文本、…

jasypt-spring-boot 加密敏感信息

文章目录 一、简介二、导入依赖三、加密字段工具类四、application.yaml 配置五、启动类测试 一、简介 在后端开发中有很多敏感信息&#xff0c;比如数据库用户名密码&#xff0c;第三方 Apikey&#xff0c;云服务商的 secretKey 等、如果不希望用明文在 application.yml 配置…

jasypt-spring-boot敏感信息加密解密利器使用指南

1. 简介 Springboot整合Jasypt&#xff0c;实现配置信息的安全&#xff0c;如数据库连接.账号和密码.接口凭证信息等。 Jasypt可以为Springboot加密的信息很多&#xff0c;主要有&#xff1a; System Property 系统变量 Envirnment Property 环境变量 Command Line argument 命…

Spring Boot项目使用 jasypt 加密组件进行加密(例如:数据库、服务的Key、等等进行加密)

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

jasypt中的加密与解密

jasypt由于其使用的是PBEWithMD5AndDES加密方式&#xff0c;所以每次加密出来的结果都不一样&#xff0c;所以很适合对数据进行加密 没什么好说的了&#xff0c;直接看demo。 基本操作 添加依赖 <dependency><groupId>com.github.ulisesbocchio</groupId>&…

jasypt的基本原理

文章目录 一、jasypt的启动类加载二、 jasypt中Encryptor、Detector和Resolver加载三、jasypt中EnableEncryptablePropertiesBeanFactoryPostProcesso四、proxy代理方式增强propertySources五、wrapper包装类方式增强propertySources六、resolver中属性值解密 作者&#xff1a;…

Jasypt 开源加密库使用教程

目录 Jasypt 加密概述 Jasypt 快速使用 StringEncryptor 加解密 Jasypt 配置详解 Jasypt 加密概述 1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持&#xff0c;出于安全考虑&#xff0c;Spring boot 配置文件中的敏感信息通常需要对它进行加密/脱敏…

使用jasypt 进行配置文件加密

项目中application.yml 配置文件的各种链接的username&#xff0c;password的值都是明文的&#xff0c;其实存在一定的安全隐患&#xff0c;这是可以使用jasypt 的方式进行明文加密, 需要注意的是 盐值和密文分开保存 参考学习-1 参考学习-2 下面实现最简单的配置 项目是sprin…

Jasypt实现数据加解密(脱敏)

场景一&#xff1a;对配置文件中的裸露的密码进行加密 1、添加依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version></dependency> …

加密组件Jasypt学习、实战及踩坑记录

概述 最近入职新公司&#xff0c;因几乎全部项目都使用到jasypt&#xff0c;故而初步学习记录下本文&#xff08;持续更新&#xff09;。 官网及GitHub给出的简介&#xff1a;使用简单&#xff0c;性能好&#xff0c;特性features非常丰富&#xff1b;支持 另&#xff0c;有个…

Jasypt加解密

Jasypt加密 Jasypt加密引言介绍整合SpringBoot引入依赖编写配置加密和解密通过Java程序获取密文和解密通过jasypt中jar包程序获取密文使用密文&#xff1a;ENC(密文) 异常问题JCE权限问题yml中带有引起的问题 关于盐值&#xff08;密钥&#xff09;配置设置其他 Jasypt加密 引…

微服务SpringBoot整合Jasypt加密工具

文章目录 一、Jasypt介绍二、Jasypt手动使用2.1 密码加密场景2.2 文本加密场景2.3 数值加密场景2.4 二进制数据加密场景 三、Jasypt整合SpringBoot四、生成环境启动无、参考文档 一、Jasypt介绍 Jasypt是Java加密工具包&#xff0c;能支持对密码的哈希加密&#xff0c;对文本和…

Springboot之Jasypt配置文件加密/解密

Jasypt配置文件加密/机密 一、Jasypt介绍二、Springboot整合Jasypt2.1 环境配置2.2 添加依赖2.3 添加Jasypt配置2.4 编写加/解密工具类2.5 修改配置文件2.5 如何进一步防止密码泄露2.5.1 自定义加密器2.5.3 加密盐值通过环境变量指定 文章系列 【一、Springboot之Jasypt配置文…

java中byte与int的转换原理

前些天遇到一个问题&#xff0c;byte[0] "A3"&#xff08;十六进制表示&#xff09; 但是在debug时显示的是 -93 &#xff0c;而如果直接赋值给int的变量也是-93.当然大部分人都知道这是不能直接赋值的&#xff0c;需要以下面的这种方式将byte转换成int&#xff1a;…

Java byte 转化为 String

1、Java 中 byte 转化为 String&#xff0c;代码如下 package nice.com.mian;import java.io.UnsupportedEncodingException;public class StringMain {public static void main(String[] args) throws Exception {byte[] bb {97,99,105,51,55};String str new String(bb, &…