在代码审计、文档审查、企业安全合规检查的日常工作中,敏感信息泄露是最常见也最容易被忽视的安全风险。身份证号、手机号、密码、银行卡等敏感数据如果硬编码在代码、日志、配置文件中,会带来极大的数据安全隐患。

面对海量文件,手动排查效率极低且易遗漏,今天给大家推荐一款纯Python开发、自带GUI图形界面、开箱即用的敏感信息扫描工具——seninfo。它依托正则表达式实现精准匹配,支持文件夹递归扫描、压缩包解析,还能将扫描结果导出为专业Excel报表,零基础也能快速上手。


一、工具核心概述

seninfo 是一款专注于敏感信息检测的轻量级安全工具,全程使用Python开发,无需复杂环境配置,通过图形化界面即可完成所有操作。

工具核心定位:无侵入、纯文本模式匹配、快速扫描,不做语义分析,仅通过正则表达式匹配文本中的敏感特征,兼顾易用性与实用性。

项目提供两套独立GUI实现版本,功能互补,满足不同使用场景:

  1. 主版本 seninfo.py:功能完整,支持多规则自定义选择、文件夹扫描、输出路径配置;

  2. 简化版 xlwt/seninfo.py:轻量化,专注单文件/ZIP扫描,操作更简洁。


二、四大核心能力,覆盖全场景检测需求

1. 纯正则敏感信息匹配

工具内置6类高频敏感信息检测规则,全部基于正则表达式实现,匹配速度快、准确率高,支持的类型如下:

敏感信息类型

正则表达式

规则说明

身份证号码

\b\d{15,18}\b

支持15位/18位身份证

中国大陆手机号

\b1[3-9]\d{9}\b

匹配标准11位手机号

邮箱地址

\b\w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}\b

通用邮箱格式匹配

IP地址

\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b

IPv4地址匹配

密码字段

\b\w*(password|passwd|pwd|root|test|123456|admin)\w*\b

覆盖常见密码关键词、弱口令

银行卡号

\d{16}|\d{19}

支持16位/19位银行卡号

备注:工具仅做文本模式匹配,不验证信息的真实有效性。

2. 多类型文件全面支持

seninfo 不局限于单一文本文件,覆盖文本文件、压缩文件、文件夹递归扫描三大场景:

  • 文本文件:支持UTF-8编码的所有文本格式,如.txt/.log/.py/.java/.json/.conf等,日志文件专项支持,可扫描系统/应用日志中的敏感信息;

  • 压缩文件:完整支持ZIP压缩包扫描,RAR格式预留接口可扩展;

  • 二进制文件:自动尝试UTF-8读取,读取失败则自动跳过,不影响扫描流程。

3. 灵活可定制的规则系统

工具的规则扩展性极强,满足个性化检测需求:

  • 规则开关:主版本GUI提供多选框,可自由勾选需要启用的规则;

  • 规则扩展:规则存储在代码rules数组中,格式标准化,直接添加正则即可新增检测类型:

    { "regex": r'自定义正则表达式', "description": "规则描述", }

    • 当前限制:需修改源码添加规则,暂不支持界面化编辑、动态加载规则文件。

    4. 专业Excel结果导出

    扫描完成后,支持将结果一键导出为.xls格式Excel文件,包含完整溯源信息:

    • 文件路径、行号、匹配到的敏感内容、规则描述,方便后续定位与整改。


    三、技术架构与依赖

    1. 核心依赖库

    工具基于Python标准库+轻量级第三方库实现,无 heavy 依赖:

    • tkinter:Python内置GUI库,构建可视化界面;

    • xlwt:Excel文件生成与写入;

    • re:正则表达式核心匹配;

    • os:文件/文件夹遍历操作;

    • zipfile:ZIP压缩包解析。

    2. 分层架构设计

    seninfo 采用四层架构,逻辑清晰、易于维护和二次开发:

    ┌─────────────────────────────────────────────────────────────┐

    │                     seninfo 敏感信息扫描工具                   │

    ├─────────────────────────────────────────────────────────────┤

    │                        用户界面层                           │

    │  ┌─────────────────┐  ┌─────────────────┐                  │

    │  │   主界面版本1    │  │   主界面版本2    │                  │

    │  │  (seninfo.py)   │  │ (xlwt/seninfo.py)│                  │

    │  │                 │  │                 │                  │

    │  │ • 文件夹选择     │  │ • 文件选择       │                  │

    │  │ • 规则多选框     │  │ • 扫描按钮       │                  │

    │  │ • 输出路径选择   │  │ • 导出按钮       │                  │

    │  │ • 扫描按钮       │  │ • 结果显示区     │                  │

    │  └─────────────────┘  └─────────────────┘                  │

    ├─────────────────────────────────────────────────────────────┤

    │                        业务逻辑层                           │

    │  ┌─────────────────┐  ┌─────────────────┐                  │

    │  │   扫描引擎1      │  │   扫描引擎2      │                  │

    │  │                 │  │                 │                  │

    │  │ • 文件夹遍历     │  │ • 文件类型判断   │                  │

    │  │ • 多规则匹配     │  │ • ZIP文件解析    │                  │

    │  │ • 结果收集       │  │ • 正则匹配       │                  │

    │  │ • 错误处理       │  │ • 结果展示       │                  │

    │  └─────────────────┘  └─────────────────┘                  │

    ├─────────────────────────────────────────────────────────────┤

    │                       敏感信息规则库                        │

    │  ┌─────────────────────────────────────────────────────────┐│

    │  │ 规则名称      │ 正则表达式                          │ 描述 ││

    │  │ 身份证号码    │ \b\d{15,18}\b                      │ 身份证││

    │  │ 手机号码      │ \b1[3-9]\d{9}\b                    │ 手机号││

    │  │ 邮箱地址      │ \b\w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}\b │ 邮箱 ││

    │  │ IP地址        │ \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b│ IP  ││

    │  │ 密码字段      │ \b\w*(password|passwd|pwd|root)\w*\b│ 密码 ││

    │  │ 银行卡号      │ \d{16}|\d{19}                      │ 银行卡││

    │  └─────────────────────────────────────────────────────────┘│

    ├─────────────────────────────────────────────────────────────┤

    │                        数据处理层                           │

    │  ┌─────────────────┐  ┌─────────────────┐                  │

    │  │   文件处理器     │  │   结果处理器     │                  │

    │  │                 │  │                 │                  │

    │  │ • 文本文件读取   │  │ • Excel生成     │                  │

    │  │ • ZIP文件解析    │  │ • 格式化输出     │                  │

    │  │ • 编码处理       │  │ • 文件保存       │                  │

    │  └─────────────────┘  └─────────────────┘                  │

    └─────────────────────────────────────────────────────────────┘


    四、零命令行上手:双版本GUI使用指南

    1.工具下载

    下载路径:https://gitcode.com/open-source-toolkit/3eb48/blob/main/README.md

    2.快速使用

    工具全程可视化操作,无需终端命令基础,两步启动即用:

    (1)主版本(推荐,功能最全)

    适用场景:批量扫描文件夹、自定义规则、指定结果输出路径

    python seninfo.py

    界面功能:

    • 选择扫描文件夹 → 勾选检测规则 → 选择结果保存路径 → 点击扫描即可。

    (2)简化版(轻量化,快速扫描)

    适用场景:单文件/ZIP压缩包快速检测

    pip install xlwt(首次运行,下载依赖)

    python xlwt/seninfo.py

    界面功能:

    • 选择文件/ZIP → 点击扫描 → 实时查看结果 → 导出Excel。


    五、典型应用场景

    1. 代码审计:检测项目代码中是否硬编码密码、密钥、手机号等敏感信息;

    2. 文档审查:扫描企业文档、报表中的个人隐私信息,避免泄露;

    3. 安全巡检:定期扫描服务器日志、配置文件,排查敏感数据泄露风险;

    4. 合规审计:满足企业数据合规要求,确保文件无违规敏感数据。


    六、工具核心优势

    1. 双版本适配:完整版+简化版,满足不同场景需求;

    2. 零门槛操作:GUI界面,小白也能快速使用;

    3. 批量处理:文件夹递归扫描+ZIP解析,高效处理海量文件;

    4. 易扩展:正则规则标准化,一键新增检测类型;

    5. 可溯源报告:Excel导出完整信息,方便整改复盘。


    七、总结

    seninfo 是一款小而美的敏感信息扫描工具,没有复杂的配置和依赖,凭借纯正则匹配、可视化GUI、多文件支持、Excel导出四大核心能力,完美适配个人开发者、企业安全人员的日常敏感信息排查工作。

    无论是代码审计、日志分析,还是合规检查,它都能快速帮你定位敏感信息风险,是数据安全防护的轻量化利器。如果你需要一款简单高效的敏感信息扫描工具,seninfo绝对是你的不二之选!

    Logo

    这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

    更多推荐