在一些常见的业务场景中可能涉及到用户的手机号,银行卡号等敏感数据,对于这部分的数据经常需要进行数据脱敏处理,就是将此部分数据隐私化,防止数据泄露。但是在生产环境中,数据
在一些常见的业务场景中可能涉及到用户的手机号,银行卡号等敏感数据,对于这部分的数据经常需要进行数据脱敏处理,就是将此部分数据隐私化,防止数据泄露。但是在生产环境中,数据一般都是实时的,且在进行脱敏操作时不能影响正常的业务使用。 脱敏方案脱敏方案一般会采用以下方式:
详细设计基本脱敏方法就目前我所使用的场景,遇到比较多的是将在展示时对数据进行部分脱敏后再展示,使用占位符替换。
md5 是不可逆的,所以如果使用MD5 加密的话就数据就无法解密,如果使用MD5加密的话更适合的场景就是用于数据加密后没有其他用处。所以如果希望加密后再解密可以使用AES 对称加密算法进行加解密,其还支持使用Key 进行加密。 脱敏模块场景
功能模块划分:当遇到以上点可以考虑设计一个专门进行数据脱敏的模块,以便统一管理和调度数据脱敏逻辑从而保证数据脱敏的一致性和规范性。一个简单的数据脱敏模块大致划分三个模块:
数据源可以使用 工厂函数,根据数据源类型创建对应数据源实例从而调用方法 GetData 获取相应的数据源,后续可以增加其他数据源时只需要再工厂函数增加类型和对应的实例创建。
数据脱敏引擎使用策略模式,先定义不同的脱敏规则,并通过DataMaskCore接口统一了脱敏方法。在初始化DataMask结构体可以根据传入不同脱敏策略,然后在进行脱敏处理时根据不同的脱敏规则进行处理。这样可以实现根据不同规则进行不同的脱敏处理,使代码更加灵活和可扩展。
简单概述,数据脱敏其实本质就是对数据不可直接展示。根据自身需求对数据敏感度,可使用简单处理方式就是对数据进行占位符代替,或者直接加密处理。如果是没有用处的数据直接暴力解决—删除。 |
2022-04-28
2022-04-21
2022-05-13
2022-08-17
2024-05-07