数据预处理-数据脱敏总结|学习笔记

简介: 快速学习数据预处理-数据脱敏总结

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

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


数据预处理-数据脱敏总结


内容介绍:

一、脱敏思路

二、关键代码

回顾整体的实现思路,脱敏的目的:数据中含有身份证号码,手机号码等敏感信息,为防止数据泄露,需将敏感进行加密操作。


一、脱敏思路

先把数据读过来,然后获取到身份证号或者是手机号的正则表达式。用正则去匹配数据,匹配出有可能是手机或者是身份证号的数据。拿到每一个数据的时候,都得判断它,因为正则匹配出来的,不一定百分百是,接下来就判断它一定是一个手机号码。有两种情况,一种情况是前面一位数字手机号的第一位,不是数字,并且手机号码最后一位的后面它也不是数字,两种情况如:abc18611577667def

Abcdef18611577667

W18611577667d23

判断出一定是手机号以后,加密后的数据去替换原始的数据。身份证号脱敏实际上和手机号脱敏的思路是一模一样,不同之处在于两个数据的正则表达式不一样,且身份证号码的长度是18位,手机号码的长度是11位。


二、关键代码

1、获取kafka的数据

2、获取手机号和身份证号码的正则表达式

valphonePattern=Pattern.compile("((13[0一

9])1(14[517])1(15([0一3]1[5一91]))1(17[0一9])1(18[0,5一9])\d{8}")

3、使用正则匹配数据获取出有可能是手机号的数据

valphones=phonePattern.matcher(encryptedData)

4、判断出一定是手机号的数据

4.1、手机号码前一个位置不是数字,并且后一位也不是数字,那么表示这个一定是手机号

4.2、手机号码前一个位置不是数字,并且手机号码是一条数据中的最后一个数据,那么表示这个一定是手机号

5、确定出是手机号后,将手机号加密,替换原始的数据

//3判断出一定是手机号的数据

//3-1手机号码用一个位置不是数字,并且手机号码是一条数据中的最后一个数据,那么表示这个一定是手机号

if(!befLettermatches("A[0一9]$")){

//若手机号的最后一位后面的角标大于数据的总长度那么表示这个手机号是数据的最后一位

ifCaftIndex>encryptedoata.length){

//确定出是手机号后,将手机号加密,替换原始的數据

encryptedData=encryptedData.replace(phone,md5,getMD5ofstr(phone))

}e1se{//表示数据不是最后一位

//3-2手机号码前一个位置不是数字,并且后一位也不是数字,那么表示这个一定是手机号

//获取到手机号码最后一位数字后面一位的字符

Val aftLetter=encryptedData.charAt(aftIndex).tostring

if(laftLetter。matches("A[0一9]$")){

//确定出是手机号后,将手机号加密,曹换原始的数据

encryptedData=encryptedData.replace(phone,nd5.getMD5ofstr(phone))

}

身份证号的脱敏:和我们前面的手机脱敏一模一样,只不过这俩正则和长度不一样,其他的都是一样的。

相关文章
|
云安全 安全 API
云安全中的常见云漏洞和威胁,有哪些防范措施
云安全中的常见云漏洞和威胁是多种多样的,以下是其中一些常见的类型和来源,以及相应的防范措施
|
3月前
|
安全 PHP 开发工具
Web渗透信息收集进阶
网站敏感目录与文件指易被恶意扫描利用的路径,如后台管理、.git、.svn等,可能导致源码泄露或权限入侵。常用工具如御剑、Dirbuster、Dirsearch可探测此类信息,需加强安全防护。
584 58
Web渗透信息收集进阶
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
1844 0
Mysql连接无效(invalid connection)解决方案
|
Java 数据库
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
8114 2
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
|
5月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
254 0
|
12月前
|
JavaScript 前端开发 异构计算
兼容移动手机的js拖拽插件Draggin.js
兼容移动手机的js拖拽插件Draggin.js
311 1
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
前端开发 算法 容器
css【详解】grid布局—— 网格布局(栅格布局)(一)
css【详解】grid布局—— 网格布局(栅格布局)(一)
1614 1
【ubuntu】ubuntu20.04安装ros noetic(亲测有效,附操作步骤)
【ubuntu】ubuntu20.04安装ros noetic(亲测有效,附操作步骤)
|
物联网 开发工具 开发者
NRF52832官方SDK介绍
SDK(Software Development Kit)是指软件开发包,一般是由官方提供,主要用来介绍开发流程,提供常用的例程代码等等。可以降低开发者使用的门槛,提高开发效率,所以在开发者在进行具体的开发前必须先熟悉官方的SDK,一般可以在对应的官网获取(有些网站是开放的,可以直接下载,有些网站需要申请)。
1203 0