项目中经常遇到
jasypt
加解密的配置文件,尤其是项目不是自己创建的时候,压根不知道加密的内容是什么,而配置文件中一般加密的也都是数据库或其他非结构型数据库的账号或密码,这时候想要看一下db的内容就非常的头疼,除了debug
去查找对应解密后的密码外,我们还可以用命令行来进行加解密。
背景:
我们需要找到配置文件中加密配置项的3个参数信息。后续文中 ***** 都是自己项目实际的加密需要的password(盐),不在另行说明!
jasypt:encryptor:password: *****algorithm: PBEWithMD5AndDESiv-generator-classname: org.jasypt.iv.NoIvGenerator
同时需要找到自己maven
包中jasypt
的jar的位置,比如我的在
D:\work\apache-maven-3.8.1-work\repo\org\jasypt\jasypt\1.9.3
接下来开始实操
一、加密
加密我们用到是org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
类,so~命令如下:
java -cp D:\work\apache-maven-3.8.1-work\repo\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="12345" password='*****' algorithm="PBEWithMD5AndDES" ivGeneratorClassName=org.jasypt.iv.NoIvGenerator
可以看到我已经通过jasypt
将12345
加密为OgwKWDG7kqgoUMEa8m5McA==
,当然实际项目中则是ENC(OgwKWDG7kqgoUMEa8m5McA==)
。
二、解密
加密我们用到是org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI
类,so~命令如下:
java -cp D:\work\apache-maven-3.8.1-work\repo\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="OgwKWDG7kqgoUMEa8m5McA==" password='*****' algorithm="PBEWithMD5AndDES" ivGeneratorClassName=org.jasypt.iv.NoIvGenerator
同理,可以看到我们已经通过jasypt
将OgwKWDG7kqgoUMEa8m5McA==
解密为12345
,这时你就可以通过其他DB链接配置查询DB中的内容了。