全网数据脱敏中间件

我要开发同款
taccisum2022年11月23日
252阅读

作品详情

出于研发需要,集团将全网生产数据同步至非生产环境,为保证重要的数据资产(如手机/银行卡/地址/订单金额等)不被泄露,需要先进行脱敏。通过此中间件,我们的运维同学只需要在配置好数据库后通过一行命令即可完成脱敏,真正做到高效、安全、易用。

此项目完全由本人单独完成,采用了 Node.JS(JavaScript 宿主环境),主要使用了 commander, chalk, inquirer, mysql, ora, workpool, pkg.js 等第三方 npm 包。同时根据集团要求自主设计了脱敏算法。

此项目的难点在于:
1. 性能:需要脱敏数据总量庞大(达数亿级),若性能太差势必导致工作进展缓慢。
解决方案:采用响应式编程,充分复用多核资源并行处理,大大提高程序性能,在 4c8g 的机器上压测千万数据全部完成脱敏全流程(读取+脱敏+写回)仅花费 7 分钟
2. 算法无状态:为提高易用性及节约成本,脱敏程序全程不能依赖任何存储资源运行。这对脱敏算法的设计提出了极高的要求,(以手机号脱敏为例)需要综合考虑算法的幂等性、不可逆性、真实性、唯一性等,同时还要确保在算法泄露的情况下也难以进行暴力破解。尤其是真实性和唯一性这年似矛盾的两个需求,如何权衡成了最大的问题
解决方案:以 MD5 作为基础算法,在其基础上扩展出符合我们需求的算法,实测重复概率与理论计算基本一致
3. 增量脱敏:由于,一、生产会产生增量数据;二、前期梳理需要脱敏的数据可能会出现遗漏;三、脱敏过程意外中间导致脱敏不全面。这几个因素使得能否识别增量数据成了很重要的一个功能
解决方案:通过为每种不同类型的数据类型设计独特的特征算法,将脱敏特征嵌入到数据中,以便程序能够快速识别出数据是否经过脱敏
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论