关注微信公众号:CodingTechWork,一起学习进步。
概述
在开发时,经常遇到数据库连接,不可避免需要使用密码,不管是开发还是测试环境,为了安全都不建议使用明文密码,我们都需要对明文密码进行加密使用,jasypt
就是一个通用的加解密库。下面我们一起学习总结一下如何在代码和命令行中使用该工具库进行加解密。
代码应用
pom依赖
在pom.xml中添加jasypt依赖
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>1.14</version></dependency>
命令行加解密
在仓库位置repository\org\jasypt\jasypt\1.9.2
中找到jasypt-1.9.2.jar
包,在linux或者windows命令行中执行
加密
格式
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input='明文密码' password=自定义秘钥 algorithm=PBEWithMD5AndDES
示例
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input='123456' password=SELFCODE algorithm=PBEWithMD5AndDES----ENVIRONMENT-----------------Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.65-b01 ----ARGUMENTS-------------------algorithm: PBEWithMD5AndDESinput: 123456password: SELFCODE----OUTPUT----------------------Fhp3CClYBcVoxsbHBI345A==
解密
格式
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input='明文加密值' password=自定义秘钥 algorithm=PBEWithMD5AndDES
示例
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input='Fhp3CClYBcVoxsbHBI345A==' password=SELFCODE algorithm=PBEWithMD5AndDES----ENVIRONMENT-----------------Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.65-b01 ----ARGUMENTS-------------------algorithm: PBEWithMD5AndDESinput: Fhp3CClYBcVoxsbHBI345A==password: SELFCODE----OUTPUT----------------------123456
配置文件
jasypt:encryptor:password: SELFCODE #加盐值spring:datasource:url: jdbc:mysql:loadbalance://10.0.0.1:3306,10.0.0.2:3306,10.0.0.3:3306/db01?connectTimeout=1000&autoReconnect=true&roundRobinLoadBalance=true&loadBalancePingTimeout=1000&loadBalanceBlacklistTimeout=30000&useUnicode=true&characterEncoding=UTF-8&failOverReadOnly=false&useSSL=falseusername: rootpassword: ENC(Fhp3CClYBcVoxsbHBI345A==)