数据脱敏工具advance-tool-datamask
1 简介
对于什么是数据脱敏,以下解释来自百度百科
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
在大数据环境下隐私保护的需求越来越频繁的被提及,对于一些敏感的信息,市面上很多应用都有一些脱敏的处理。例如百度的个人中心对账号的脱敏:
实现思路:在数据转json字符串的过程中,使用自定义序列化工具,解析Java Bean上标注为敏感信息的属性,将其按照规则进行脱敏,最终返回给前端的就是脱敏后的数据。
2 引入依赖
<dependency><groupId>com.github.f-sunrise-q</groupId><artifactId>advance-tool-datamask</artifactId><version>1.0.1-RELEASE</version>
</dependency>
3 前后端数据脱敏
3.1 使用注解定义带敏感信息的响应实体
使用注解@SensitiveInfo来自己标注哪些属性是敏感的,默认是全部隐藏,可设置mode来选择隐藏中间部分,MaskModeEnum.MID表示隐藏中间1/3。
@Data
public class SensitiveResponseDto {@SensitiveInfo(mode = MaskModeEnum.MID)private String userName;@SensitiveInfoprivate String password;@SensitiveInfo(mode = MaskModeEnum.MID)private String phone;
}
定义测试接口
@GetMapping("/test")
public SensitiveResponseDto test(){SensitiveResponseDto responseDto = new SensitiveResponseDto();responseDto.setUserName("admin");responseDto.setPassword("123456");responseDto.setPhone("12345678910");return responseDto;
}
调用测试接口的结果:
3.2 自定义handler
当默认的全部脱敏和中间1/3脱敏不能满足要求时,支持自定义脱敏规则。例如定义对IP地址隐藏中间两个数字的规则:
public class CustomDataMaskHandler implements IDataMaskHandler {/*** 自定义规则:如果data为IP,则隐藏中间两个数字** @param data* @return*/public String mask(String data) {if(ObjectUtils.isNotEmpty(data) && DataMaskConstant.IP_PATTERN.matcher(data).find()){String[] numbers = data.split("\\.");return numbers[0] +".*.*." + numbers[3];}return data;}
}
SensitiveResponseDto中增加clientIp,并设置handler为CustomDataMaskHandler.class
@Data
public class SensitiveResponseDto {@SensitiveInfo(mode = MaskModeEnum.MID)private String userName;@SensitiveInfoprivate String password;@SensitiveInfo(mode = MaskModeEnum.MID)private String phone;@SensitiveInfo(handler = CustomDataMaskHandler.class)private String clientIp;
}
修改测试接口
@GetMapping("/test")
public SensitiveResponseDto test(){SensitiveResponseDto responseDto = new SensitiveResponseDto();responseDto.setUserName("admin");responseDto.setPassword("123456");responseDto.setPhone("12345678910");responseDto.setClientIp("127.0.0.1");return responseDto;
}
再次调用测试接口
3.3 关闭脱敏功能
在application.properties中增加配置
advance.tool.datamask.close=true
再次调用测试接口,数据正常返回。
4 日志脱敏
若是希望打印日志对敏感数据也脱敏,也可使用这个工具。logback.xml中增加配置
<conversionRule conversionWord="msg" converterClass="com.advance.sunrise.tool.datamask.log.SensitiveInfoConverter"> </conversionRule>
测试接口中打印日志:
源码地址:https://github.com/f-sunrise-q/baseCore/tree/master/advance-parent/advance-tools
数据脱敏工具advance-tool-datamask相关推荐
- python个人数据脱敏_数据脱敏的处理方法及查询
[摘要] 关键词:集算器.SPL.数据脱敏.报表 1).数据脱敏是"指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下, ...
- 数据脱敏技术的实践指南
本文转载自:https://mp.weixin.qq.com/s/LsL7pIb3jEwCq6i0fsXKPA 一.概述 企业在运营过程中开展数据脱敏工作,往往面对的是大规模的数据集,信息化程度越高的 ...
- 数据脱敏为何如此重要?
随着企业数字化转型的深入,数据已然成为了企业运行的重要资产.尤其是随着互联网+.云计算.大数据等信息技术与通信技术的迅猛发展,社会逐步进入了数据时代. 但是,与之而来的是数据泄露风险的加剧.根据近期发 ...
- 数据脱敏的处理方法及查询
[摘要] 关键词:集算器.SPL.数据脱敏.报表 1).数据脱敏是"指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下, ...
- 万字详解数据安全关键技术之数据脱敏
摘要 数据脱敏是数据安全领域落地场景较为成熟的技术手段,在数据深层次.大范围的共享开放的今天,数据脱敏在不影响数据使用的前提下,保护敏感隐私数据,已成为数据安全建设重要内容.本文通过对数据脱敏技术及应 ...
- 改造了以前写的数据脱敏插件,更好用了
以前用Mybatis插件的形式写了一个数据脱敏工具,但是发现有一定的局限性.很多时候我们从ORM查询到的数据有其它逻辑要处理,比如根据电话号查询用户信息,你脱敏了就没有办法来处理该逻辑了.所以脱敏这个 ...
- ssd测试工具 linux,英特尔ssd工具下载-Intel英特尔SSD Data Center Tool(数据中心工具)2.2.1 Linux版 - 极光下载站...
早在2013年,微软就将win10系统的代号设定为Threshold.Threshold也是像Blue一样,会带来一波的系统更新,包括Windows Threshold.Windows Phone T ...
- 【linlong】Hutool工具,身份证号、手机号、姓名等数据脱敏信息工具类介绍
前言 在开发系统过程中,经常会接触到大量的数据信息,这些数据信息可能包含身份证号.手机号.姓名.卡号等各种敏感信息.而有些用户需求是不允许,这些敏感信息数据为了保护用户个人信息的安全.对这些数据需 ...
- 【收藏】身份证号、手机号、姓名等数据脱敏信息工具类介绍
前言 在开发系统过程中,经常会接触到大量的数据信息,这些数据信息可能包含身份证号.手机号.姓名.卡号等各种敏感信息.为了保护用户个人信息的安全.对这些数据需要进行特殊处理. 数据脱敏 数据脱敏 ...
最新文章
- 配置 Spring Batch 批处理失败重试
- 产品上线前会发生什么故事? | 每日趣闻
- apache 限制IP访问
- html region 折叠,js代码折叠的方法//#region 代码 //#endregion
- [转] Logistic函数
- sublime 安装 插件 package control,安装docblockr
- ORACLE设置用户密码不过期
- RedHat/CentOS发行版本号及内核版本号对照表
- css3加载图片淡入效果
- Web2.0时代,RSS你会用了吗?(技术实现总结)(转载)
- 关于“Exchange Server 地址列表服务未能响应”的错误解决方法。
- 【Python3网络爬虫开发实战】 1.5.4-RedisDump的安装
- 线程池拒绝策略-RejectedExecutionHandler
- antimalware可以关闭吗_微信小程序可以关闭吗?如何关闭?
- 重磅消息:F5收购Nginx!
- JavaScript:三大家族
- 图像调优1:清晰度相关参数MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
- Hadoop安装教程单机/伪分布式配置
- 简单的光线追踪教程(一)
- 蓝牙怎么调声音大小_蓝牙耳机怎么调音量?