- 引入依赖
java <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
- 配置加密/解密秘钥
yaml jasypt: encryptor: password: Y6M9fAJQdU7jNp5MW
- 加密字符串
```java @Test public class DatabaseTest {
@Autowired
private StringEncryptor encryptor;
@Test
public void getPass() {
String url = encryptor.encrypt("jdbc:mysql://localhost:3306/mydb&characterEncoding=utf-8");
String name = encryptor.encrypt("root");
String password = encryptor.encrypt("123456");
System.out.println("database url: " + url);
System.out.println("database name: " + name);
System.out.println("database password: " + password);
}
} ```
- 替换明文
```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: ENC(h20YiPrvNnuuTe096APd3bnG3++Yro=) username: ENC(sT6BztXbJEa71eg3pPGYMQ==) password: ENC(MpSZFJ9ftq+3+VUANZjr0Q==)
jasypt: encryptor: password: Y6M9fAJQdU7jNp5MW # 加密的密匙 ```
- 为防止加密秘钥泄露,可在项目部署的时候使用命令传入
shell java -jar xxx.jar -Djasypt.encryptor.password=Y6M9fAJQdU7jNp5MW