Spring配置文件密文加密
首先,引入jar包(不用maven的小伙伴可以去在线中央仓库下载)
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
示例加密代码如下?获取对应的加密后的密码
package com.desv;
import org.jasypt.properties.PropertyValueEncryptionUtils;
import org.jasypt.util.text.BasicTextEncryptor;
/**
* 加密测试工具
* @author uidq3930
* @date 2022-9-2
*/
public final class JasyptEncryptorUtils {
/**
* 加密盐
* @date 2022-9-2
*/
private static final String SALT = "qgY7v#edt16yX";
private static final BasicTextEncryptor BASIC_TEXT_ENCRYPTOR = new BasicTextEncryptor();
static {
BASIC_TEXT_ENCRYPTOR.setPassword(SALT);
}
private JasyptEncryptorUtils() {
}
/**
* 明文加密
*/
public static String encode(String plaintext) {
System.out.println("明文字符串:" + plaintext);
String ciphertext = BASIC_TEXT_ENCRYPTOR.encrypt(plaintext);
System.out.println("加密后字符串:" + ciphertext);
return ciphertext;
}
/**
* 解密
*/
public static String decode(String ciphertext) {
System.out.println("加密字符串:" + ciphertext);
ciphertext = "ENC(" + ciphertext + ")";
if (PropertyValueEncryptionUtils.isEncryptedValue(ciphertext)) {
String plaintext = PropertyValueEncryptionUtils.decrypt(ciphertext, BASIC_TEXT_ENCRYPTOR);
System.out.println("解密后的字符串:" + plaintext);
return plaintext;
}
System.out.println("解密失败");
return "";
}
/**
* 测试
*/
public static void main(String[] args) {
JasyptEncryptorUtils.encode("明文密码");
}
}
最后在配置文件中替换你的明文密码,并用ENC加密标记
datasource:
primary:
url: jdbc:p6spy:oracle:thin:@0.0.0.0:1521:orcl
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: username
password: ENC(UKcFnoKMZgcMo3wNKlDMNN4C4cZCWqDJ)