引入jasypt依赖
1 2 3 4 5
| <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
|
设置jasypt加密的盐值
在application.yml配置文件中设置jasypt加密的盐值
1 2 3
| jasypt: encryptor: password: ledao
|
获取加密后的数据库密码
在测试模块中使用下面代码获取加密后的数据库密码,我的数据库密码为123456,下面代码在控制台打印加密后的数据库密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.ledao;
import org.jasypt.encryption.StringEncryptor; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
@SpringBootTest class BookManageSystemApplicationTests {
@Resource private StringEncryptor encryptor;
@Test void contextLoads() { System.out.println(encryptor.encrypt("123456")); }
}
|
修改application.yml的数据库密码
将上面得到的加密后的密码用ENC()
包起来,完整代码如下:(把url和username也加密起来也是可以的)
1 2 3 4 5 6 7 8 9 10
| spring: application: name: microservice-student datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/db_bookmanagesystem?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8 username: root password: ENC(69cbirQ6l+cOIL8x6nblXw==)
|
PS.
虽然jasypt每次加密的结果都不同,但是解密后的原密码是同一个