SpringBoot项目使用jasypt加解密的方法(springboot jasypt加密)

网友投稿 850 2022-07-29


目录一、添加依赖二、生成加密数据三、对加密数据进行解密四、在SpringBoot项目中使用

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

地址:https://github.com/jasypt/jasypt

一、添加依赖

com.github.ulisesbocchio

jasypt-spring-boot-starter

2.1.0

二、生成加密数据

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

org.jasypt

&lthttp://;artifactId>jasypt

${jasypt.version}

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.http://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: PBEWithMD5AndDESinput: abc123password: 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: PBEWithMD5AndDESinput: 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()中。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SSM项目实现短信验证码登录功能的示例代码(ssm框架验证码实现)
下一篇:一文详解Java线程中的安全策略
相关文章

 发表评论

暂时没有评论,来抢沙发吧~