SpringBoot项目中如何运用jasypt进行数据加密与解密操作?

2026-05-25 12:141阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计754个文字,预计阅读时间需要4分钟。

SpringBoot项目中如何运用jasypt进行数据加密与解密操作?

Jasypt是一个Java库,它允许开发者以最小的努力为其项目添加基本的加密功能,而无需深入理解密码学原理。地址:https://github.com/jasypt/jasypt

Jasypt 是一个 Java 库,它允许开发者以最小的努力为他 / 她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。

地址:github.com/jasypt/jasypt

一、添加依赖

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

二、生成加密数据

1.根据 jasypt-spring-boot-starter 的父级POM, 找到jasypt的依赖路径,我这里看到如下:

<dependency> <groupId>org.jasypt</groupId> <artifactId>jasypt</artifactId> <version>${jasypt.version}</version> </dependency>

2.然后通过上面的依赖路径,在本地Maven仓库中找到jasypt的jar包,通过CMD执行下面操作:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES

3.结果如下:

E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES ----ENVIRONMENT----------------- Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08 ----ARGUMENTS------------------- algorithm: PBEWithMD5AndDES input: abc123 password: test ----OUTPUT---------------------- Kh4BPjpQIt00Af/s+1Fx8w==

说明:

  • algorithm: 加密算法

  • input:加密的内容

  • password: 盐值(后面解密也需使用这个盐值进行解密)

  • OUTPUT: 加密之后的内容

  • org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI 为加密使用的类

三、对加密数据进行解密

同样还是使用jasypt的jar包,在CMD中执行操作如下:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES

结果如下:

SpringBoot项目中如何运用jasypt进行数据加密与解密操作?

E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES ----ENVIRONMENT----------------- Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08 ----ARGUMENTS------------------- algorithm: PBEWithMD5AndDES input: Kh4BPjpQIt00Af/s+1Fx8w== password: test ----OUTPUT---------------------- abc123

说明:

  • algorithm:加密算法
  • input:要解密的内容
  • password:盐值
  • OUTPUT:解密后的内容
  • org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI 为解密使用的类

四、在SpringBoot项目中使用

  1. 在配置文件中,配置盐值:

    jasypt.encryptor.password=test

  2. 配置要解密的内容,我这里配的是对数据库密码进行解密:

    spring.datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)

说明:ENC() 中包含的就是要解密的内容, 一般我们通过上面的命令先生成加密内容,然后在配置文件中将加密内容配置到ENC()中。

本文共计754个文字,预计阅读时间需要4分钟。

SpringBoot项目中如何运用jasypt进行数据加密与解密操作?

Jasypt是一个Java库,它允许开发者以最小的努力为其项目添加基本的加密功能,而无需深入理解密码学原理。地址:https://github.com/jasypt/jasypt

Jasypt 是一个 Java 库,它允许开发者以最小的努力为他 / 她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。

地址:github.com/jasypt/jasypt

一、添加依赖

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

二、生成加密数据

1.根据 jasypt-spring-boot-starter 的父级POM, 找到jasypt的依赖路径,我这里看到如下:

<dependency> <groupId>org.jasypt</groupId> <artifactId>jasypt</artifactId> <version>${jasypt.version}</version> </dependency>

2.然后通过上面的依赖路径,在本地Maven仓库中找到jasypt的jar包,通过CMD执行下面操作:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES

3.结果如下:

E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES ----ENVIRONMENT----------------- Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08 ----ARGUMENTS------------------- algorithm: PBEWithMD5AndDES input: abc123 password: test ----OUTPUT---------------------- Kh4BPjpQIt00Af/s+1Fx8w==

说明:

  • algorithm: 加密算法

  • input:加密的内容

  • password: 盐值(后面解密也需使用这个盐值进行解密)

  • OUTPUT: 加密之后的内容

  • org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI 为加密使用的类

三、对加密数据进行解密

同样还是使用jasypt的jar包,在CMD中执行操作如下:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES

结果如下:

SpringBoot项目中如何运用jasypt进行数据加密与解密操作?

E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES ----ENVIRONMENT----------------- Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08 ----ARGUMENTS------------------- algorithm: PBEWithMD5AndDES input: Kh4BPjpQIt00Af/s+1Fx8w== password: test ----OUTPUT---------------------- abc123

说明:

  • algorithm:加密算法
  • input:要解密的内容
  • password:盐值
  • OUTPUT:解密后的内容
  • org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI 为解密使用的类

四、在SpringBoot项目中使用

  1. 在配置文件中,配置盐值:

    jasypt.encryptor.password=test

  2. 配置要解密的内容,我这里配的是对数据库密码进行解密:

    spring.datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)

说明:ENC() 中包含的就是要解密的内容, 一般我们通过上面的命令先生成加密内容,然后在配置文件中将加密内容配置到ENC()中。