【Java教程】SpringBoot项目如何使用jasypt加解密方法

零 Java教程评论132字数 2244阅读7分28秒阅读模式

所需工具:

Java

聪明的大脑文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

勤劳的双手文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

 文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

注意:本站只提供教程,不提供任何成品+工具+软件链接,仅限用于学习和研究,禁止商业用途,未经允许禁止转载/分享等文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

 文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

介绍

添加依赖
生成加密数据
对加密数据进行解密
在SpringBoot项目中使用文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

 文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

教程如下

Jasypt 是一个 java 库,它允许开发者以最小的努力为他 / 她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

地址:https://github.com/jasypt/jasypt文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

一、添加依赖

[php]文章源自灵鲨社区-https://www.0s52.com/bcjc/javajc/12070.html

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

[/php]

二、生成加密数据

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

[php]

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

[/php]

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

[php]

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

[/php]

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中执行操作如下:

[php]

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

[/php]

结果如下:

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项目中使用

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

[php]

jasypt.encryptor.password=test

[/php]

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

[php]

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

[/php]

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

零
  • 转载请务必保留本文链接:https://www.0s52.com/bcjc/javajc/12070.html
    本社区资源仅供用于学习和交流,请勿用于商业用途
    未经允许不得进行转载/复制/分享

发表评论