Skip to content

🔒 数据脱敏工具

📖 功能介绍

TIP

数据脱敏工具提供了对敏感信息的安全处理能力,支持日志脱敏和接口响应脱敏两种方式,适用于身份证号、手机号、银行卡号等个人敏感信息的保护。

🛡️ 脱敏方式

1. 日志脱敏

WARNING

日志脱敏用于防止敏感信息(如密码)出现在系统日志中,通过配置方式实现自动脱敏。

配置参数

参数说明可选值示例
field需要脱敏的字段名-password
type脱敏类型ALL/SECTIONALL

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地址浙江省杭州市****区
EMAIL电子邮箱a***@qq.com
BANK_CARD银行卡号6222****8888
PASSWORD密码********
CARNUMBER车牌号浙A****8

💡 最佳实践

1. 日志脱敏建议

  • 对密码等敏感信息使用 ALL 类型完全脱敏
  • 对用户标识使用 SECTION 类型部分脱敏
  • 定期审查日志确保脱敏效果

2. 接口脱敏建议

  • 选择合适的内置脱敏类型
  • 自定义规则时注意数据格式
  • 考虑数据展示的易读性

3. 安全建议

  • 生产环境必须启用脱敏
  • 定期检查脱敏配置
  • 及时更新脱敏规则

🔍 常见问题

  1. 脱敏失效排查

    • 检查配置是否正确
    • 验证字段名称匹配
    • 确认注解使用正确
  2. 自定义规则建议

    • 遵循数据格式规范
    • 保持适当显示长度
    • 考虑业务可读性