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

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

开发者学堂课程【大数据实战项目:反爬虫系统(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))

}

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

相关文章
|
5月前
|
缓存 自然语言处理 搜索推荐
大模型上线前,我们到底该怎么测?一份来自一线的检查清单
本文分享大模型对话功能上线前的实战测试经验,直击“无标准答案、状态无限、结果不可复现、判断主观”四大难点,提炼出覆盖功能、性能、安全、体验的六类测试清单及红黄绿三色上线准入标准,助力同行少踩坑、稳上线。
|
7月前
|
机器学习/深度学习 人工智能 监控
构建AI智能体:六十五、模型智能训练控制:早停机制在深度学习中的应用解析
文章摘要:早停机制是深度学习中防止过拟合的关键技术,通过在验证集性能停止改善时终止训练,自动平衡模型复杂度和泛化能力。其核心价值包括自动防过拟合、提升训练效率(节省30-80%计算资源)、简化调参过程。关键参数设置涉及patience(容忍轮次)、min_delta(最小改善阈值)和restore_best_weights(恢复最佳权重)。实现流程包括训练轮次监控、验证集评估和性能改善判断,通过U型曲线分析可直观理解其工作原理。
807 20
|
7月前
|
关系型数据库 分布式数据库 数据库
议程抢先看|2026阿里云PolarDB开发者大会,重磅来袭
2026年1月20日,阿里云PolarDB开发者大会将于上海五角场凯悦酒店举行!聚焦数据库前沿技术,1场主论坛+3场分论坛,探讨行业趋势与创新实践。议程精彩,报名从速!
Web server failed to start. Port XXX was already in use.【完美解决方案】
Web server failed to start. Port XXX was already in use.【完美解决方案】
Web server failed to start. Port XXX was already in use.【完美解决方案】
|
3月前
|
弹性计算 监控 前端开发
阿里云服务器带宽收费价格,包年包月与按量付费价格与选择指南
阿里云服务器带宽计费分包年包月和按量付费两种模式。包年包月适合流量平稳、可预测的场景,如企业官网、电商平台等,通过阶梯定价和混合计费优化成本。按量付费则适合流量波动大、难以预测的业务,如临时测试、直播活动等,通过节省计划和自动伸缩降低成本。用户应评估业务流量模式、计算成本平衡点,考虑业务发展阶段,合理选择计费模式。
|
10月前
|
安全 PHP 开发工具
Web渗透信息收集进阶
网站敏感目录与文件指易被恶意扫描利用的路径,如后台管理、.git、.svn等,可能导致源码泄露或权限入侵。常用工具如御剑、Dirbuster、Dirsearch可探测此类信息,需加强安全防护。
1272 58
Web渗透信息收集进阶
|
6月前
|
数据采集 监控 数据可视化
你的数据质量可靠吗?一份评估数据质量的实用指南
数据质量是企业数据驱动的生命线。本文深入探讨其六大核心维度:准确性、完整性、一致性、及时性、唯一性与有效性,解析低质数据带来的决策失误、效率低下等痛点,并分享如何通过业务与技术协同,借助工具实现质量规则的自动化监控与持续改进,构建可信数据体系。
|
11月前
|
数据采集 存储 NoSQL
终于有人把数据血缘讲明白了
数据在系统中流转最终变成报表上的一个数字,但你知道它从何而来、如何加工、出错找谁吗?数据血缘就像数据的“族谱”,记录其来源、加工过程与最终去向,帮助你清晰掌握数据的来龙去脉,提升数据治理效率,保障数据质量与合规性。
终于有人把数据血缘讲明白了
|
12月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
392 0
|
JavaScript 前端开发 异构计算
兼容移动手机的js拖拽插件Draggin.js
兼容移动手机的js拖拽插件Draggin.js
463 1