外观
响应数据加密拦截器 🔐
功能介绍 💡
WARNING
响应数据加密拦截器就像一个加密邮差,负责在数据返回给客户端之前对其进行加密处理。在高安全要求的系统中,它通过对响应数据进行加密来保护敏感信息,防止数据在传输过程中被窃取或篡改。
核心特性
- 🔒 使用高安全性的
3DES
加密算法 - 📦 加密数据统一通过
data
字段返回 - ✅ 使用
encrypt: true
标识数据已加密
详细配置说明 ⚙️
核心参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
enabled | boolean | 否 | false | 是否启用拦截器 |
items | array | 是 | - | 加密规则配置列表 |
加密规则配置详解 (items)
参数名 | 类型 | 必填 | 说明 | 示例值 |
---|---|---|---|---|
urls | array | 是 | 需要进行加密的URL地址列表 | /demo/login |
secret | string | 是 | 3DES加解密密钥(24字符) | D5E5F589769DA629A2F8C344F4749C0A |
forbid-urls | array | 否 | 排除不需要加密的URL地址 | /demo/public/** |
headers | object | 否 | 请求头过滤规则,增加后只有匹配的请求头才可以进入此拦 | |
截器,默认为空,全部匹配(v1.5.2+) | {"appId": ["test","demo"]} |
配置示例 📋
基础配置
yaml
wueasy:
gateway:
filter:
response-encrypt:
enabled: true # 启用响应加密
items:
- urls: /demo/login,/demo/get # 需要加密的地址
secret: D5E5F589769DA629A2F8C344F4749C0A # 加密密钥
高级配置
yaml
wueasy:
gateway:
filter:
response-encrypt:
enabled: true
items:
- urls: /api/** # 所有API接口
secret: D5E5F589769DA629A2F8C344F4749C0A
forbid-urls: /api/public/** # 排除公开接口
headers: # 请求头过滤
appId: # 只处理特定应用的请求
- test
- demo
响应示例 📝
加密前的响应数据
json
{
"code": 0,
"msg": "success",
"data": {
"userId": "12345",
"username": "admin",
"token": "eyJhbGciOiJIUzI1NiJ9..."
}
}
加密后的响应数据
json
{
"code": 0,
"msg": "success",
"data": "U2FsdGVkX1+2tOLqT8HqVJ6Y+6P8v+3/RjMYn+5p+8Q=",
"encrypt": true
}
最佳实践 💡
密钥管理
- 使用高强度的密钥(建议24位以上)
- 不同环境使用不同的密钥
- 定期更换密钥
- 安全存储密钥,避免泄露
加密策略
- 只对敏感数据接口启用加密
- 合理使用排除规则
- 避免对大数据量响应启用加密
- 配合请求加密使用,实现双向加密
性能优化
- 设置合理的缓存策略
- 避免重复加密
- 监控加密性能影响
常见问题 ❓
加密失败
- 检查密钥格式是否正确
- 验证数据格式是否符合要求
- 确认加密算法配置是否正确
客户端解密问题
- 确保使用相同的密钥
- 验证加密算法实现是否一致
- 检查是否正确处理
encrypt
标志
性能问题
- 评估加密对响应时间的影响
- 优化加密范围
- 考虑使用缓存机制
安全提示 ⚠️
CAUTION
- 密钥是系统安全的核心,必须严格保护
- 建议使用HTTPS传输加密数据
- 定期更新密钥,降低泄露风险
- 避免在日志中打印加密密钥和原始数据
- 建议配合请求加密和签名验证使用