springboot使用jasyptdatasource密码加密

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

maven依赖

com.github.ulisesbocchio

 jasypt-spring-boot-starter

    1.8

配置加密参数(可以理解为加密的salt)

jasypt:

encryptor:

password: 123456(这个可以随便设置的,每次设置时数据库的接连驱动要是明文(也就是不加密的,否则运行起来报错))

写一个测试方法,这里直接在单元测试里面来实现给密码加密,得到字符串密码

@Autowired StringEncryptor stringEncryptor;

@Test public void encryptPwd() {

//调用加密方法

String result = stringEncryptor.encrypt("yourpassword"); System.out.println("==================");

System.out.println(result);

//调用解密方法

String test=stringEncryptor.decrypt(result)

System.out.println(test);

System.out.println("==================");

}

把得到的密文写到需要使用到的地方,加密后的字符串需要放到ENC里面,格式如下:

spring:

datasource:

url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false

username: root

password: ENC(4TyrSSgQd2DCHnXVwkdKMQ==)

driver-class-name: com.mysql.jdbc.Driver

通过命令行运行 jasypt-1.9.2.jar 包命令来加密解密:

在jar包所在目录打开命令行,运行如下加密命令:

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

这里input输入的可以对数据库的用户名进行加密也可以是数据库的密码进行加密

运行结果如下(这种加密每次得到的密文都是不一样的)

springboot使用jasyptdatasource密码加密_第1张图片

使用刚才加密出来的结果进行解密,执行如下解密命令:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="i00VogiiZ1FpZR9McY7XNw==" password=security algorithm=PBEWithMD5AndDES

结果如下

springboot使用jasyptdatasource密码加密_第2张图片

 

 

 

转载于:https://my.oschina.net/u/3459265/blog/1840397

你可能感兴趣的:(springboot使用jasyptdatasource密码加密)