Skip to content

配置加密 🔐

本系统支持对配置文件中的敏感信息进行加密,目前支持 DES3 和 SM4 两种加密算法。

支持的加密类型

DES3 加密

  • 标识符: ENCDES3(加密内容)
  • 算法: 3DES (Triple DES)
  • 密钥长度: 24字节
  • 适用场景: 数据库密码、API密钥等敏感信息

SM4 加密

  • 标识符: ENCSM4(加密内容)
  • 算法: SM4 (国密算法)
  • 密钥长度: 16字节
  • 适用场景: 符合国密标准要求的场景

加密内容格式

在配置文件中,加密内容使用以下格式:

yaml
# DES3 加密格式
database:
  password: ENCDES3(base64编码的加密内容)

# SM4 加密格式  
redis:
  password: ENCSM4(base64编码的加密内容)

生成加密内容

使用命令行工具

系统提供了命令行工具来生成加密内容:

bash
# DES3 加密
./your-app -encType=des3 -encValue="your-password"

# SM4 加密
./your-app -encType=sm4 -encValue="your-password"

加密步骤

  1. 准备明文: 需要加密的敏感信息
  2. 选择加密类型: des3 或 sm4
  3. 执行加密: 使用命令行工具或程序接口
  4. 获取密文: 得到 base64 编码的加密结果
  5. 配置文件: 将密文按格式写入配置文件

配置示例

完整配置文件示例

yaml
# config.yaml
server:
  port: 8080
  host: localhost

database:
  host: localhost
  port: 3306
  username: root
  # 使用DES3加密的数据库密码
  password: ENCDES3(YourBase64EncodedEncryptedPassword==)
  database: myapp

redis:
  host: localhost
  port: 6379
  # 使用SM4加密的Redis密码
  password: ENCSM4(YourBase64EncodedEncryptedRedisPassword==)

api:
  # 混合使用不同加密类型
  secret_key: ENCDES3(YourBase64EncodedApiSecret==)
  jwt_secret: ENCSM4(YourBase64EncodedJwtSecret==)

安全说明 🔒

密钥安全机制

本系统采用内置密钥的安全机制,具有以下特点:

  • 密钥内置: 加密密钥直接编译打包在应用程序中
  • 无法提取: 外部无法通过常规手段获取密钥信息
  • 专用解密: 只有本应用程序能够解密配置中的加密内容
  • 运行时解密: 应用启动时自动解密配置项,无需额外操作

安全优势

  1. 防止明文泄露: 配置文件中不包含明文敏感信息
  2. 密钥保护: 密钥与应用程序绑定,无法单独获取
  3. 简化部署: 无需额外的密钥管理和分发机制
  4. 透明使用: 应用程序内部自动处理加解密过程

使用建议

  • 推荐场景: 单应用部署,配置文件需要版本控制或多人协作
  • 适用环境: 开发、测试、生产环境的配置统一管理
  • ⚠️ 注意事项: 加密内容只能在生成它的应用程序中使用
  • ⚠️ 兼容性: 不同版本的应用程序可能使用不同的内置密钥