一、什么是数据脱敏
数据脱敏指的是某些敏感的信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。敏感数据包括,姓名、身份证号、手机号、银行卡号等信息,防止这些敏感数据在不安全的情况下使用,所以就要使用数据脱敏的技术。
使用数据脱敏会在敏感数据被查询时,使用***进行遮挡,从而保护敏感数据的安全。
二、使用Java实现数据脱敏
添加数据脱敏用的到的依赖
<dependency>
<groupId>io.gitee.chemors</groupId>
<artifactId>secure-ext-spring-boot-starter</artifactId>
<version>1.0.3-RELEASE</version>
</dependency>
创建一个用户的实体类,设置一些敏感数据的属性
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
// 用户姓名 SensitiveTypeEnum 是个枚举实体类
@DesensitizationProp(SensitiveTypeEnum.CHINESE_NAME)
private String userName;
// 用户手机号
@DesensitizationProp(SensitiveTypeEnum.MOBILE_PHONE)
private String userPhone;
// 用户银行卡号
@DesensitizationProp(SensitiveTypeEnum.BANK_CARD)
private String bank_card;
// 用户身份证号
@DesensitizationProp(SensitiveTypeEnum.ID_CARD)
private String id_card;
}
写一个简单的测试接口
@RestController
public class DataMask {
@Desensitization // 数据脱敏的关键,当前注释的控制器返回数据之前要经过数据脱敏
@RequestMapping(value = "/user",method = RequestMethod.GET)
public User getInformation() {
return new User("海苔大王","12211118888","6228 0000 0000 0000 679","842411111111111111");
}
}
配置文件,那个深度脱敏默认是关闭的,感兴趣的朋友可以去搜索相关资料
# 是否启用脱敏,全局生效,默认开启的
sensitive.enable=true
# 是否启用深度脱敏,为了性能考虑,默认关闭
sensitive.depth=false
测试一下数据能否脱敏
经过测试发现,敏感数据已经被*号所覆盖
数据脱敏成功