jasypt对yml文件铭感信息加密
一、添加maven信息
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
因为我springboot版本较低,jasypt的版本也用的比较低。如果你们使用高版本的jasypt启动项目报错的话,就降低版本。
二、对需要的yml文件的信息加密
import io.renren.blockthree.util.SM2Util;
import org.jasypt.util.text.BasicTextEncryptor;
public class test {
public static void main(String[] args) {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
// 加密密钥
textEncryptor.setPassword("123456");
// 要加密的数据(如数据库的地址或用户名或密码)
String devUrl=textEncryptor.encrypt("jdbc:mysql://localhost:3006/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false");
String devUsername = textEncryptor.encrypt("root");
String devPassword = textEncryptor.encrypt("123456");
System.out.println("开发dev数据库地址:"+devUrl);
System.out.println("开发dev数据库用户名:"+devUsername);
System.out.println("开发dev数据库密码:"+devPassword);
System.out.println("================================================");
}
输出内容(下面输出的是我乱写的)
开发dev数据库地址:abcdefg
开发dev数据库用户名:sdfghj
开发dev数据库密码:qwetertytyui
将上述输出的内容替换到yml文件中,格式为 ENC(XXXXX)
eg:
spring:
datasource:
druid:
#MySQL
driver-class-name: com.mysql.jdbc.Driver
url: ENC(KZzPmLao/KYVTOQWvCT+9CEJ/wXYhI9KtRg3Lh9YSCKbqeM6L5EQ8c+kPHQ6XD7P26LmnnJNFm+7rqUHg3wFhW3nZQCRLIMS45trNNi3cHhy/6yWHA+xCslKL/6qOCPLCoEHVrN9fA1YcASHdQuFNTZP5UYbSvvsHbsXorE7bkmiv7ZnZ2U9CQ==)
username: ENC(aHret1pG+Y3dbVUpCe1wHw==)
password: ENC(SDSW5/NJWj7bnFthZPl+KGED76vpiKJD)
三、启动信息
在idea中启动增加环境配置 -Djasypt.encryptor.password=123456
在服务器上通过java -jar方式启动,增加–jasypt.encryptor.password=123456
docker方式启动,修改Dockerfile文件,增加"-Djasypt.encryptor.password=123456"