切换主题
配置加密 🔐
本系统支持对配置文件中的敏感信息进行加密,目前支持 DES3 和 SM4 两种加密算法。
支持的加密类型
DES3 加密
- 标识符:
ENCDES3(加密内容)
- 算法: 3DES (Triple DES)
- 密钥长度: 24字节
- 适用场景: 数据库密码、API密钥等敏感信息
SM4 加密
- 标识符:
ENCSM4(加密内容)
- 算法: SM4 (国密算法)
- 密钥长度: 16字节
- 适用场景: 符合国密标准要求的场景
加密内容格式
在配置文件中,加密内容使用以下格式:
yaml
# DES3 加密格式
database:
password: ENCDES3(base64编码的加密内容)
# SM4 加密格式
redis:
password: ENCSM4(base64编码的加密内容)
1
2
3
4
5
6
7
2
3
4
5
6
7
生成加密内容
使用命令行工具
系统提供了命令行工具来生成加密内容:
bash
# DES3 加密
./your-app -encType=des3 -encValue="your-password"
# SM4 加密
./your-app -encType=sm4 -encValue="your-password"
1
2
3
4
5
2
3
4
5
加密步骤
- 准备明文: 需要加密的敏感信息
- 选择加密类型: des3 或 sm4
- 执行加密: 使用命令行工具或程序接口
- 获取密文: 得到 base64 编码的加密结果
- 配置文件: 将密文按格式写入配置文件
配置示例
完整配置文件示例
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
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
安全说明 🔒
密钥安全机制
本系统采用内置密钥的安全机制,具有以下特点:
- 密钥内置: 加密密钥直接编译打包在应用程序中
- 无法提取: 外部无法通过常规手段获取密钥信息
- 专用解密: 只有本应用程序能够解密配置中的加密内容
- 运行时解密: 应用启动时自动解密配置项,无需额外操作
安全优势
- 防止明文泄露: 配置文件中不包含明文敏感信息
- 密钥保护: 密钥与应用程序绑定,无法单独获取
- 简化部署: 无需额外的密钥管理和分发机制
- 透明使用: 应用程序内部自动处理加解密过程
使用建议
- ✅ 推荐场景: 单应用部署,配置文件需要版本控制或多人协作
- ✅ 适用环境: 开发、测试、生产环境的配置统一管理
- ⚠️ 注意事项: 加密内容只能在生成它的应用程序中使用
- ⚠️ 兼容性: 不同版本的应用程序可能使用不同的内置密钥