配置加密 #
一、配置加密概述 #
1.1 为什么需要配置加密 #
text
未加密配置:
spring:
datasource:
password: mypassword123 # 明文密码,不安全
加密配置:
spring:
datasource:
password: ENC(加密后的值) # 加密后,安全
1.2 加密方案 #
| 方案 | 说明 |
|---|---|
| Jasypt | Spring Boot集成加密 |
| Nacos加密 | Nacos内置加密 |
| 自定义加密 | 自定义加密实现 |
二、Jasypt加密 #
2.1 添加依赖 #
xml
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
2.2 配置密钥 #
yaml
jasypt:
encryptor:
password: ${JASYPT_PASSWORD:default}
algorithm: PBEWithMD5AndDES
2.3 加密配置 #
java
@Test
public void encrypt() {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("my-secret-key");
encryptor.setAlgorithm("PBEWithMD5AndDES");
String encrypted = encryptor.encrypt("mypassword");
System.out.println("ENC(" + encrypted + ")");
}
2.4 使用加密值 #
yaml
spring:
datasource:
password: ENC(加密后的值)
2.5 启动参数 #
bash
java -jar app.jar -Djasypt.encryptor.password=my-secret-key
三、Nacos加密 #
3.1 内置加密 #
Nacos 2.x支持配置加密:
yaml
spring:
cloud:
nacos:
config:
server-addr: localhost:8848
encryption:
enabled: true
key: my-secret-key
3.2 加密配置 #
在Nacos控制台创建配置时,选择加密存储。
四、最佳实践 #
4.1 密钥管理 #
| 方式 | 说明 |
|---|---|
| 环境变量 | 推荐方式 |
| 启动参数 | 次选方式 |
| 配置文件 | 不推荐 |
4.2 注意事项 #
| 注意点 | 说明 |
|---|---|
| 密钥安全 | 不要将密钥提交到代码库 |
| 密钥轮换 | 定期更换密钥 |
| 权限控制 | 限制密钥访问权限 |
五、总结 #
| 要点 | 说明 |
|---|---|
| Jasypt | Spring Boot集成加密 |
| 密钥管理 | 使用环境变量 |
| 安全性 | 保护敏感配置 |
接下来让我们学习 消息驱动!
最后更新:2026-03-28