gregory-dean/email-breach-checker

GitHub: gregory-dean/email-breach-checker

一款 Python 命令行工具,通过 Have I Been Pwned API 批量查询邮箱泄露情况并生成结构化 CSV 报告。

Stars: 0 | Forks: 0

# 邮箱泄露检查器 从文件中读取邮箱地址,通过 [Have I Been Pwned](https://haveibeenpwned.com/) API 进行查询,并将分组汇总的结果写入 CSV。 ## 环境要求 - Python 3.10+ - 网络连接 - HIBP API key([在此申请](https://haveibeenpwned.com/API/Key)) ## 安装说明 ``` pip install . ``` 用于开发环境: ``` pip install -e ".[dev]" ``` ## 配置 通过环境变量或 `.env` 文件设置你的 API key: ``` export HIBP_API_KEY=your_api_key ``` 或者将 `.env.example` 复制为 `.env` 并进行编辑。 ## 使用说明 ``` email-breach-checker INPUT_FILE [options] ``` 参数: | 选项 | 描述 | 默认值 | |--------|-------------|---------| | `INPUT_FILE` | 包含邮箱的 `.txt` 或 `.csv` 文件路径 | 必填 | | `--output PATH` | 汇总 CSV 输出路径 | `results.csv` | | `--failed-log PATH` | 查询失败记录的日志文件 | `failed_emails.log` | | `--delay SECONDS` | 请求之间的暂停时间 | `6.0` | | `--api-key KEY` | 覆盖 `HIBP_API_KEY` | 取自环境变量 | | `--quiet` | 隐藏单个邮箱的进度信息 | off | | `--version` | 打印版本号并退出 | | | `--help` | 显示帮助信息并退出 | | 示例: ``` email-breach-checker examples/emails.txt --output results.csv ``` 你也可以作为模块运行: ``` python -m email_breach_checker examples/emails.txt ``` ## 输入格式 **文本文件 (`.txt`)**:每行一个邮箱地址。 **CSV 文件 (`.csv`)**:通过模式匹配从所有单元格中提取邮箱。自动移除重复项。 请参阅 [examples/emails.txt](examples/emails.txt) 查看文本输入文件示例。 ## 输出 汇总 CSV 文件中,每个邮箱占据一行,包含泄露次数、标题、域名、日期、验证状态、受影响次数、泄露的数据类型以及截断的描述。 查询失败的记录将追加到失败日志文件中,并包含 HTTP 状态码和错误详情。 退出码: | 代码 | 含义 | |------|---------| | `0` | 所有查询均成功 | | `1` | 一个或多个查询失败 | | `2` | 用法错误(缺少文件、参数无效、缺少 API key) | ## 开发 运行测试和 lint: ``` pytest ruff check src tests ``` ## 许可证 MIT。详见 [LICENSE](LICENSE)。
标签:Atomic Red Team, Python, Retryablehttp, 反取证, 安全规则引擎, 安全评估, 数据泄露检测, 无后门, 逆向工具