配置加密 #

一、配置加密概述 #

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