Java系列-MySQL配置文件密码加密
2025年9月13日大约 1 分钟
Java系列-MySQL配置文件密码加密
概述
数据库配置文件用户名,密码会暴露,又不想生产跟开发环境建来回切换,所以得加密数据库密码。
正式开始
pom.xml
<!-- 数据库加密 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
application.yml/properties 配置文件中加上盐值:
#============================#
#===== 盐值 config =====#
#============================#
jasypt:
encryptor:
password: page
编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class test_jiami {
@Autowired
StringEncryptor stringEncryptor;
@Test
public void encryptPwd() {
String result = stringEncryptor.encrypt("root");
System.out.println(result);
}
}
# 这里面的参数是你的用户,然后返回来的是加密后的用户:EDvE8iJcFlM66AXg7H7D7g==
EDvE8iJcFlM66AXg7H7D7g==
将加密后的密码复制到 application.yml/properties
配置文件中
spring:
datasource:
...
username: ENC(EDvE8iJcFlM66AXg7H7D7g==)
password: ENC(jj0Jn32323232323232323232443bkL57)
额外补充
如果一不小心将你的密码在测试代码中提交上去,岂不是白加密了吗,其实还有一种方法:
在你的maven
仓库中找到:D:\Devlop\Maven\apache-maven-3.6.1\repo\org\jasypt\jasypt\1.9.2
,这个包就是加密的包了
cmd在这个包下执行如下命令,它会返回你加密后的密码:
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=other algorithm=PBEWithMD5AndDES
其中:
input
:是数据库的明文密码password
:是机密的盐algorithm
:是加密的方式(默认)
然后在配置文件中把盐加进去就ok了
#============================#
#===== 盐值 config =====#
#============================#
jasypt:
encryptor:
password: page