<!-- 加密工具 -->java
<dependency>
mysql
<groupId>com.github.ulisesbocchio</groupId>
git
<artifactId>jasypt-spring-boot-starter</artifactId>
github
<version>1.8</version>
spring
</dependency>
sql
配置加密参数(能够理解为加密的salt)数据库
jasypt:maven
encryptor:spring-boot
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输入的能够对数据库的用户名进行加密也能够是数据库的密码进行加密
运行结果以下(这种加密每次获得的密文都是不同的)
使用刚才加密出来的结果进行解密,执行以下解密命令:
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="i00VogiiZ1FpZR9McY7XNw==" password=security algorithm=PBEWithMD5AndDES
结果以下