背景:
需要在非生产环境下对敏感信息进行数据脱敏,实现敏感隐私数据的可靠保护。
脱敏数据特征:
1.保持原有数据特征:例如身份证由17位数字本体码和1位检验码组成。
2.保持数据之间一致性:出生年月和出生日期之间的关系。
3.保持业务规则的关联性。
4.多次脱敏之间的数据一致性。
脱敏的方法:
1.数据替换
要求:用设置的固定虚构值替换真值。例如将手机号码统一替换为 13800013800
2.无效化
要求:通过对数据值得截断、加密、隐藏等方式使敏感数据脱敏,使其不再具有利用价值,例如将地址以 ****** 代替真值。数据无效化与数据替换所达成的效果基本类似。
3.随机化
要求:用随机数据代替真值,保持替换值的随机性以模拟样本的真实性。例如用随机生成的姓和名代替真值。
【注意】这个例子中我们针对数据脱敏引入了外部字典表,实际情况中可以根据数据脱敏要求,随时引入任意外部字典表,通过数据的随机化组合,实现替换真值数据的脱敏处理。
4.偏移和取整
要求:通过随机移位改变数字数据,例如日期 2018-01-02 8:12:25 变为 2018-01-02 8:00:00,偏移取整在保持了数据的安全性的同时保证了范围的大致真实性,此项功能在大数据利用环境中具有重大价值。
5.掩码屏蔽
要求:掩码屏蔽是针对账户类数据的部分信息进行脱敏时的有力工具,比如银行卡号或是身份证号的脱敏。将身份证号的出生日期进行掩码屏蔽脱敏。使用left()函数截取身份证号的左边 6 位 + 字符串 ********+right()函数截取身份证号右边 4 位替换源身份证字符串。
6.灵活编码
要求:在需要特殊脱敏规则时,可执行灵活编码以满足各种可能的脱敏规则。比如用固定字母和固定位数的数字替代合同编号真值。将合同编号进行自定义编码脱敏。自定义编码规则:4 位固定码 + 当前年份 + 源目标字符串 4 位号码 +9 位数值组成。
脱敏相关文章参考:https://www.jianshu.com/p/43d9882ed24a