开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第三阶段):数据预处理-数据脱敏-身份证脱敏代码】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/671/detail/11649
数据预处理-数据脱敏-身份证脱敏代码
内容介绍:
一、手机脱敏的实际的效果
二、实现身份证号码脱敏
三、身份证脱敏的实际的效果
一、手机脱敏的实际的效果
在程序当中,这个是手机脱敏的调用,该接收处理完的结果。如下图前面垫一个 val 类型的加密手机的一个变量来进行接收过来的数据,就是脱敏后的数据。再做一个返回,接收过的时候直接返回就返到 map里面,然后用 Data process 接收,接收完下面 data process 做了一个输出 println。
Val Data process = FilteredData.map(message=>{
//3 数据脱敏功能
//3-1手机号脱敏
Val encryptedPhone = EncryptedData.encryptedPhone
(message)
encryptedPhone
//3-2身份证号码脱敏
})
Data process .foreach(println)
接下来直接实执行这个代码。代码执行的时候可以看到,前面数据清洗的时候做了一个输出,后面这里又做了个经过脱敏的输出,而原本是没经过脱敏的,会输出两个。执行程序,没有报错。
爬虫跑起来之前看一下手机号码,为了比较好查找手机号,给手机号后面加了一个后缀,就是 CCC,find 手机号码是18611577667,打到程序里边,程序里面采集数据就能够拿到这个号码,接下来有一个原敏输出,有一个脱敏输出。
看有没有脱敏,把爬虫跑一下,右键直行。跑几遍把它关了,能看到数据就行。找一下 Ccc 已经进行了加密,find ccc ,一个是明文的,后一个是加密的,代码当中数据清洗完以后的是明文的,清洗完经过加密以后的就是密文的了,再往后一一对应就是数据脱敏的代码效果。
把实际的代码关掉以后重新跑一下,看效果。这一次跑出来的结果应该全部都是加密以后的数据。跑一下爬虫右键直行跑几遍关掉。关掉看数据找到的 CCC 都进行加密了没有明文的。
二、实现身份证号码脱敏
身份证号码脱敏思路和手机号码的思路一模一样,正则表达式还有偏移的量,手机号码是11身份证号码是18,其他的都一样。所以身份证号码脱敏快速的把手机号码的粘过来。身份证号码加密调过来,有一点需要注意的地方是手机号码脱敏,传递的是 message,还是手机号加密以后的数据?如果传的是 message,把 message 加密了以后你message 里面的身份证号加密了,但是手机号没加密,或者存在手机号加密了,但身份证号还没加密。身份证号是在 a 和 b 之间,find bbb,aaa 和 bbb 之间有不知道某个人的身份证号码需要加密。
要想让两个数据都加密,把手机号加密以后的数据直接塞给的程序,让程序自动的先加密码手机号再去加密身份证号码,把这两个加密完,再前面做一个接收 val,加密身份证号码,把身份证号码返回,保存。
//3-2身份证号码脱敏
Val encrypedId = EncrypedData.encrypedId (encryptedPhone
)
encrypedId
具体代码把手机号码加密的实现过程直接拷贝,phone 改成 id 不报错。身份证号码的脱敏先把代码改了一会改备注说明。代码接收数据没有问题,md5没有问题,手机号码的正则改身份证号码的正则,代码当中有一个身份证号码的正则。CTRL+c 替换掉手机号码的正则改身份证号码。加密 date 没有问题,手机号的数据改 ids,因为身份证号是每一个人的唯一标识,也类似于数据库里面的 ID 唯一标识,Id 现在有了,Ids 有可能是多个的。这里面先找到一个phone=phones,过滤出来粘贴成 id=ids。找到数据当中身份证号的前一位,和后一位将 phone 改为 id,后面的不是+11,身份证号码是18位要+18,角标字符没有问题。角标的长度大于了数据的长度,它就是身份证号码,身份证号码这里面就不是 iPhone,就是 id.改完以后再检查 find:phone 没有问题后将备注里手机号换成身份证号码,然后再来方便快速用 find 找手机,没有就改完了。实际上身份证号码的脱敏与手机号码的脱敏的思路是一模一样的,只不过这里面正则表达式换成身份证号码的正则,以及身份证号码的位数是18位,手机号是11位,脱敏完以后实际上调用也已经调用完了,把手机脱敏后的数据去脱敏身份证,脱敏完后进行返回,就是手机号码的脱敏的实现过程。
三、身份证脱敏的实际的效果
这个代码写完了,看看身份证号能不能被脱敏掉,同时手机号码也应该被脱敏了,看一下这个效果,把这个程序停掉来重新运行一下这个代码,爬虫跑起来,右键直行,跑完以后先看手机号码是否被脱敏,find ccc,已经被脱敏了
aaa 和 bbb 之间是身份证号码进行脱敏了,如下图:
身份证号码也进行脱敏了,效果已经看到了。