主题切换
🔒 数据脱敏工具
📖 功能介绍
TIP
数据脱敏工具提供了对敏感信息的安全处理能力,支持日志脱敏和接口响应脱敏两种方式,适用于身份证号、手机号、银行卡号等个人敏感信息的保护。
🛡️ 脱敏方式
1. 日志脱敏
WARNING
日志脱敏用于防止敏感信息(如密码)出现在系统日志中,通过配置方式实现自动脱敏。
配置参数
参数 | 说明 | 可选值 | 示例 |
---|---|---|---|
field | 需要脱敏的字段名 | - | password |
type | 脱敏类型 | ALL/SECTION | ALL |
YAML配置示例
yaml
wueasy:
json-securitys:
- field: password # 密码字段
type: ALL # 全部加密
- field: idCard # 身份证号
type: SECTION # 部分加密
- field: phoneNo # 手机号
type: SECTION # 部分加密
2. 接口响应脱敏
TIP
通过注解方式实现响应数据的自动脱敏,支持多种内置脱敏类型和自定义规则。
@Desensitized 注解参数
参数 | 说明 | 示例 |
---|---|---|
type | 脱敏类型 | SensitiveType.MOBILE_PHONE |
regex | 自定义正则表达式 | "(?<=\w{3})\w(?=\w{4})" |
使用示例
java
@Data
public class UserInfo {
@Desensitized(type = SensitiveType.MOBILE_PHONE)
private String phone; // 手机号脱敏
@Desensitized(type = SensitiveType.ID_CARD)
private String idCard; // 身份证脱敏
@Desensitized(type = SensitiveType.BANK_CARD)
private String bankCard; // 银行卡号脱敏
@Desensitized(type = SensitiveType.EMAIL)
private String email; // 邮箱脱敏
}
📋 内置脱敏类型
类型 | 说明 | 示例 |
---|---|---|
REGEX | 正则表达式 | 自定义脱敏规则 |
CHINESE_NAME | 中文名 | 张** |
ID_CARD | 身份证号 | 330***********1234 |
FIXED_PHONE | 座机号 | 0571-****1234 |
MOBILE_PHONE | 手机号 | 133****8888 |
ADDRESS | 地址 | 浙江省杭州市****区 |
电子邮箱 | a***@qq.com | |
BANK_CARD | 银行卡号 | 6222****8888 |
PASSWORD | 密码 | ******** |
CARNUMBER | 车牌号 | 浙A****8 |
💡 最佳实践
1. 日志脱敏建议
- 对密码等敏感信息使用
ALL
类型完全脱敏 - 对用户标识使用
SECTION
类型部分脱敏 - 定期审查日志确保脱敏效果
2. 接口脱敏建议
- 选择合适的内置脱敏类型
- 自定义规则时注意数据格式
- 考虑数据展示的易读性
3. 安全建议
- 生产环境必须启用脱敏
- 定期检查脱敏配置
- 及时更新脱敏规则
🔍 常见问题
脱敏失效排查
- 检查配置是否正确
- 验证字段名称匹配
- 确认注解使用正确
自定义规则建议
- 遵循数据格式规范
- 保持适当显示长度
- 考虑业务可读性