1.首先导入依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2.将账户密码连接等需要加密的数据进行加密
package com.lrhealth.mappingintegration.Test;
import org.jasypt.properties.PropertyValueEncryptionUtils;
import org.jasypt.util.text.BasicTextEncryptor;
/**
* ClassName: Test
* Description:
*
* @author pangyq
* date: 2021/11/19 9:42
*/
public class Test {
public static void main(String[] args) {
//mysql加密
encode("jdbc:mysql://localhost:3306/mapping_integration?allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8");
encode("root");
encode("root");
}
//盐值
private static final String salt = "Mappinggd6Tsjckd87xGy6H1JGb47G2H72";
private static BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
static {
basicTextEncryptor.setPassword(salt);
}
/**
* 明文加密
* @param plaintext
* @return
*/
public static String encode(String plaintext){
System.out.println("明文字符串:" + plaintext);
String ciphertext = basicTextEncryptor.encrypt(plaintext);
System.out.println("加密后字符串:" + ciphertext);
return ciphertext;
}
/**
* 解密
* @param ciphertext
* @return
*/
public static String decode(String ciphertext){
System.out.println("加密字符串:" + ciphertext);
ciphertext = "ENC(" + ciphertext + ")";
if (PropertyValueEncryptionUtils.isEncryptedValue(ciphertext)){
String plaintext = PropertyValueEncryptionUtils.decrypt(ciphertext,basicTextEncryptor);
System.out.println("解密后的字符串:" + plaintext);
return plaintext;
}
System.out.println("解密失败");
return "";
}
}
3.将配置文件里的连接地址账户密码更换成加密后的,注意格式
ENC(加密后的数据)
4.盐值可以放在配置文件里,但是不推荐
打开启动配置
-Djasypt.encryptor.password=你的密钥就是盐
点击apply然后保存,ok
5.如果你想打包部署的话,就需要在命令后面加
java -jar mdm-admin.jar --jasypt.encryptor.password=
在你的启动命令后面加--jasypt.encryptor.password=加你的盐值