0

0

Python网络数据脱敏处理_安全解析【教程】

舞夢輝影

舞夢輝影

发布时间:2026-01-06 19:20:03

|

133人浏览过

|

来源于php中文网

原创

Python网络数据脱敏核心是在保障可用性前提下对手机号、身份证号、邮箱等敏感信息进行掩码或泛化处理;需先精准识别字段类型,再用正则re.sub实现基础脱敏,结构化数据可封装通用函数批量处理,高阶场景推荐Presidio等语义级工具。

python网络数据脱敏处理_安全解析【教程】

Python网络数据脱敏处理的核心是:在不破坏数据可用性的前提下,隐藏或替换敏感信息(如手机号、身份证号、邮箱、银行卡号等),防止泄露风险。关键不是简单删掉,而是有策略地变形、掩码或泛化。

识别常见敏感字段类型

脱敏前必须准确定位哪些字段含敏感信息。常见类型包括:

  • 手机号:11位数字,通常以1开头(如13812345678)→ 可掩码为138****5678
  • 身份证号:18位(含X),前6位为地址码,中间8位为出生日期→ 常保留前6后4,中间用*代替(如110101********1234)
  • 邮箱:包含@符号,用户名部分可脱敏(如zhang***@example.com)
  • 银行卡号:16–19位数字,通常只显示后4位(如**** **** **** 5678)
  • 姓名:中文名2–4字,可用星号替代中间字(如王*明、李**华)

使用正则+re.sub实现基础脱敏

Python内置re模块足够应对多数规则化脱敏场景。注意匹配要精准,避免误伤正常数字或文本。

示例:手机号脱敏

立即学习Python免费学习笔记(深入)”;

import re
def mask_mobile(text):
    return re.sub(r'(1[3-9]\d{2})\d{4}(\d{4})', r'\1****\2', text)
mask_mobile("联系人:张三,电话13812345678")  # → "联系人:张三,电话138****5678"

关键点:

GentleAI
GentleAI

GentleAI是一个高效的AI工作平台,为普通人提供智能计算、简单易用的界面和专业技术支持。让人工智能服务每一个人。

下载
  • r''写原始字符串,避免转义干扰
  • 分组(...)捕获需保留的部分,\1\2引用它们
  • 身份证、邮箱等同理,需分别设计更严谨的正则(如邮箱加边界符\b

结构化数据(JSON/CSV)批量脱敏

实际中数据多来自API响应(JSON)或日志文件(CSV)。建议封装通用脱敏函数,按字段名自动处理:

def sanitize_dict(data, rules=None):
    if rules is None:
        rules = {
            'phone': lambda x: re.sub(r'(1[3-9]\d{2})\d{4}(\d{4})', r'\1****\2', x),
            'id_card': lambda x: re.sub(r'^(\d{6})\d{10}(\d{2}\w)$', r'\1********\2', x),
            'email': lambda x: re.sub(r'^(.)(.*?)(?=@)', r'\1***', x) if '@' in x else x,
        }
    if isinstance(data, dict):
        return {k: sanitize_dict(v, rules) if isinstance(v, (dict, list)) 
                else rules.get(k, lambda x: x)(v) for k, v in data.items()}
    elif isinstance(data, list):
        return [sanitize_dict(item, rules) for item in data]
    else:
        return data

调用方式:

data = {"user": "李四", "phone": "15987654321", "email": "lisi@example.com"}
sanitized = sanitize_dict(data)
# → {'user': '李四', 'phone': '159****4321', 'email': 'l***@example.com'}

进阶:结合Faker或Presidio做语义级脱敏

纯正则易漏判或过杀。若需更高可靠性,推荐:

  • Faker库:生成合规假数据替代真实值(适合测试环境)
  • Microsoft Presidio(需pip install presidio-analyzer presidio-anonymizer):支持多语言、上下文识别(如区分“ID:110101199001011234”中的身份证号)
  • 自定义实体识别器 + 规则引擎:适用于行业特定字段(如医保卡号、学号等)

Presidio简易用法:

from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine

analyzer = AnalyzerEngine() anonymizer = AnonymizerEngine()

text = "张三的电话是13912345678,身份证11010119900101123X" results = analyzer.analyze(text=text, language='zh') anonymized = anonymizer.anonymize(text=text, analyzer_results=results) print(anonymized.text) # → "张三的电话是[PHONE_NUMBER],身份证[ID_NUMBER]"

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

734

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

631

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

753

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1258

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

705

2023.08.11

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号