SpringBoot项目使用jasypt加解密的方法
Jasypt 是一个 Java 库,它允许开发者以最小的努力为他 / 她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。
地址:https://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
结果如下:
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项目中使用
在配置文件中,配置盐值:
jasypt.encryptor.password=test
配置要解密的内容,我这里配的是对数据库密码进行解密:
spring.datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)
说明:ENC()
中包含的就是要解密的内容, 一般我们通过上面的命令先生成加密内容,然后在配置文件中将加密内容配置到ENC()
中。
到此这篇关于SpringBoot项目使用jasypt加解密的文章就介绍到这了,更多相关SpringBoot jasypt加解密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341