数据预处理-数据脱敏-需求及实现思路|学习笔记

简介: 快速学习数据预处理-数据脱敏-需求及实现思路

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第三阶段数据预处理-数据脱敏-需求及实现思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/671/detail/11647


数据预处理-数据脱敏-需求及实现思路


目标:数据脱敏模块的目标就是为了实现数据当中含有身份证和手机号码等敏感信息,为了防止数据泄露,需要将数据进行脱敏工作,或者是进行加密。也就是说数据当中有明文手机号码和身份号,然后把进行加密,让看不出来就行了,这是需求,也是项目的目标。

需求:由于 cookie 信息当中可能带有敏感信息,用户的手机号身份证号,然后对于这些敏感信息,需要对进行加密、脱敏的操作,为了防止数据丢失或者说泄露数据,这个就是需求,使用的算法就是 MD5对手机号码以及身份证号码进行加密。

设计:设计思路就是先引入算法,然后对手机号码去查询出纯手机号码的数据进行加密,然后再计算出纯身份证号码的数据进行加密,下面就来实现这个功能:

在实现这个工能之前,前面的工作是数据的清洗,现在数据清洗已经做完了,也就是说在数据清洗之前,有很多数据经过清洗以后变成了很少的数据,没用的数据都过滤掉了,而脱敏工作也一定要在清洗以后的数据进行脱敏的。

所以脱敏工作一定要建立在数据清洗的数据的基础之上,所以拿到清洗后的数据调用,然后调用用 map 的方法,因为map 里面是有返回值的,map 有返回值,因为第三步是脱敏,而第四步第五步第六步里面有好多的步骤都是需要用到前面的数据的,所以这里面就要用 map,需要有个返回,而返回里面 map 调用的是辨认出的是每一条数据,每一条数据拿到以后,然后在程序里面要做的是数据的脱敏工作,而这里面包括身份证号透明和手机号码透明两种。

先把数据脱敏工作放在清洗后的数据的 map 里面:

第3步数据脱敏一直到第8步数据结构化,实际上都要放在这里面来,只不过现在先放这一个,后面再给一个个补充过来。

加进来以后得做一个接收,用一个 object 的名称叫 dataprocess,数据预处理。接下来进行的是数据预处理,在这个基础上数据预处理。

image.png

然后接收过来数据以后,因为是 map,所以就得触发一下,就加上.foreach,然后 println 来做一个输出。

实现数据的手机号码脱敏的方法,具体这个方法名字叫做加密数据,加密手机号。将然后把数据 Message 传递过来,没写过这个代码,所以要把这个方法 object 创建一下,在业务处理 business process 里面,右键新建一个object,确定以后这个代码是用于实现数据脱敏的代码,手机号和身份证号,们的脱敏都放在这里面。然后接下来再来引一下, business process 里面自己创建的,object 有了但是方法还没有。创建方法:里面做一个接收,用于实现手机号码的脱敏。

这个就是手机号码的脱敏,实际上就是加密手机号,不报错之后就进入了程序,进来以后接下来就开始实现手机号码的脱敏。

第一步读取 kafka 里的数据到程序中已,

第二步读取身份证号和手机号码正则表达式,实际上这里身份证号就先不读就读手机号码。

第三步使用正则表达式匹配出有可能是手机号码的数据。数据当中,message 里可能是有很多数据,而这么多数据里面有可能有手机号,也有可能没有手机号,而不是手机号的,因为是个正责,也有可能匹配上一些数据,只不过这些数据有可能不是手机号。所以要做一个判断,也就是说这里面匹配出有可能是手机号的正则,再往后找出有可能是的,也有可能不是的。

第四步判断出在这些有可能不是当中判断出一定是手机号的代码,一定是手机号的数据。判断一定是手机号,有两种情况,一种情况就是手机号码的前一位不是数字,后一位也不是数字,那一定是手机号码。另一种情况是手机号码的前一位不是数字,手机号码是一条数据中的最后一个数据,也一定是手机号码。然后这是两种一定是手机号的判断。

第五步确定出手机号码以后将手机号进行加密,再用加密后的数据替换原始加密以前的数据,就实现了手机号码的脱敏工作。

这个就是实现手机号码加密的流程,总结如下:

首先得有手机的正则,然后使用正则去数据里面匹配,而数据里面有可能什么样的格式都有,直接拿原始数据去匹配,可能会出现有可能是的,也有可能不是的,有多种情况,判断出一定是手机号的数据,判断出一定是手机号的数据以后,将手机号加密,还要一个引入 MD5,这是总的大的流程。MD5加密完了以后去用加密后的数据替换原始数据,这样就把加密做完了。怎么判断数据一定是手机号?举例如下:abcdef 中加入18611577667变成abc18611577667def,加入了手机号码以后,判断出正则表达式肯定是一个数字,以1开头的,一共11位有可能是数字,匹配的时候一定是手机号码给匹配出来这个结果。前一个位置是字母,后一个位置也是字母,那么这种情况一定是手机号码。还有一种情况叫做 abcdef 后面又加入了1861157667变成 abcdef1861157667。假如说这就到数据的最后一行了,最后一个数据了,这个数据就长成这个样子。那也就是说 abcdef 后面是18611577667,这是个手机号码,这个手机号码一定是这个数值匹配出来以后,也满足手机号的正则1开头一共有11个。现在来看也一定是手机号,因为后面已经没有数据了,这个数据的手机号码已经到了数据的最后一位,一定是手机号。这两种情况一定是手机号。

也有不是手机号的情况,举例如下:

12345,然后18611577667,然后后面又加了一堆字符串,变成12341861157766726这有可能是一些二维码,还有一些商品的一些串号或者手机串号等等。数据里面去匹配,正则表达式18611577667是手机号码,虽然现在看好像是手机号,但是就这一整条数据来看,不是手机号码,可能是用数据当中的一部分。这是一个18位的数字,有可能是身份证号码,身份证号码当中有可能匹配上了数据,18611577667,这个也不是手机号码。

总的来说如果确定是不是手机号码,在前一位一定不能是数字类型,后面也不是数字,匹配了正则有可能就是手机号码了。

如果前面不是数字,后面假设说再来个123,变成 w18611577667d23,这个数据虽然前面也能匹配上手机的正则,但是也不是手机号码。因为一整条数据7后面还有123。

两种情况:手机号码前一位不是数字,并且手机号码是这一条数据当中最后一个数据;

手机号码前一位不是数字,并且后一位也不是数字,那么就表示是手机号码

这就是实现手机号码脱敏的实现过程,实现的思路。

相关文章
|
7天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1922 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
652 111
|
15天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2556 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 弹性计算 数据库
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
2026年阿里云构建了覆盖全用户的七类优惠券,本文逐一拆解了每类优惠券的核心规则、适用人群与使用技巧:大促限定的阶梯满减券分个人、企业双通道,最高可减800元;学生专属300元无门槛券支持全品类通用;按量付费用户可参与消费达标返券形成循环优惠;新用户有低门槛专享满减券尝鲜;老用户可领取系统自动发放的随机福利券;中大型企业迁云可申请最高100万元的专项补贴;云产品通用券还能在活动价基础上实现折上折。不同身份、不同采购场景的用户均可通过精准匹配对应优惠券,最大化享受优惠力度。
462 110
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
|
13天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1619 2
|
15天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1428 2
|
17天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1499 55
|
2天前
Qoder 一周年 × Qwen3.8-Max 正式上线,多重好礼限时领
8月3日,Qwen3.8-Max 正式上线Qoder,迎来Qoder一周年。新老用户可领800次免费调用,下单再赠2000次;夜间(22:00–08:00)调用5折;邀请好友双方得积分与调用额度。
249 0