跳到主要内容

三级等保-数据脱敏

功能说明

JeecgBoot的脱敏功能完全满足三级等保,且支持配置化,具体功能如下:

  • 对于敏感数据进行加星 * 脱敏
  • 支持手机号、身份证号码、车牌号、银行卡、地址等敏感信息类型

三级等保 【数据脱敏】 相关的核心代码在后端类 : datamasking 包 三级等保 【数据脱敏】 相关的Demo : 前端:AdminDataMaskingDemoController 类

脱敏实现

  • 使用 @DataMasking 注解放在需要脱敏的 JavaBean 字段上
  • 使用 DataMaskingSerializer 序列化对 @DataMasking 注解字段进行脱敏
  • 脱敏工具类 SmartDataMaskingUtil

脱敏数据类型

public enum DataMaskingTypeEnum {

COMMON(null, "通用"),
PHONE(DesensitizedUtil.DesensitizedType.MOBILE_PHONE, "手机号"),
CHINESE_NAME(DesensitizedUtil.DesensitizedType.CHINESE_NAME, "中文名"),
ID_CARD(DesensitizedUtil.DesensitizedType.ID_CARD, "身份证号"),
FIXED_PHONE(DesensitizedUtil.DesensitizedType.FIXED_PHONE, "座机号"),
ADDRESS(DesensitizedUtil.DesensitizedType.ADDRESS, "地址"),
EMAIL(DesensitizedUtil.DesensitizedType.EMAIL, "电子邮件"),
PASSWORD(DesensitizedUtil.DesensitizedType.PASSWORD, "密码"),
CAR_LICENSE(DesensitizedUtil.DesensitizedType.CAR_LICENSE, "中国大陆车牌"),
BANK_CARD(DesensitizedUtil.DesensitizedType.BANK_CARD, "银行卡"),
USER_ID(DesensitizedUtil.DesensitizedType.USER_ID, "用户id");
}

Demo

@Data
public static class DataVO {

@DataMasking(DataMaskingTypeEnum.USER_ID)
private Long userId;

@DataMasking(DataMaskingTypeEnum.PHONE)
private String phone;

@DataMasking(DataMaskingTypeEnum.ID_CARD)
private String idCard;

@DataMasking(DataMaskingTypeEnum.ADDRESS)
private String address;

@DataMasking(DataMaskingTypeEnum.PASSWORD)
private String password;

@DataMasking(DataMaskingTypeEnum.EMAIL)
private String email;

@DataMasking(DataMaskingTypeEnum.CAR_LICENSE)
private String carLicense;

@DataMasking(DataMaskingTypeEnum.BANK_CARD)
private String bankCard;

@DataMasking
private String other;

}