Email Breach Checker (EBC) is a Python-based CLI tool that checks if any emails from a .csv file have been exposed in known data breaches using the Have I Been Pwned (HIBP) API.
- 🎨 Stylized ASCII menu interface
- 📂 Auto-searches Desktop/Downloads for
.csvfiles - ✅ Smart validation for email format and input files
- 🧠 Graceful handling of empty, invalid, or malformed CSVs
- 🧹 Skips duplicates and filters junk data
- 💾 Saves grouped summary results in
output/summary_results.csv - 🧱 Logs failed email lookups to
output/failed_emails.log - 🌐 API rate-limit friendly with built-in delay
- Python 3.6+
- Internet connection
- Free HIBP API key (get one here)
Install dependencies:
pip install -r requirements.txtCreate a .env file with your API key:
echo "HIBP_API_KEY=your_hibp_api_key" > .env- Place your
.csvfile with email addresses on your Desktop or Downloads - Run the tool (after installing or from source):
python3 email_breach_checker_V2.py- Follow the interactive menu to select or enter your file path
- Review scan summary in terminal and detailed results in:
output/summary_results.csv
Each email scanned will show:
- Number of breaches found
- Names and domains of breached services
- Dates and verified status
- Type of compromised data (e.g., emails, passwords)
- Truncated descriptions of each breach
Example contents of a .csv:
The script is designed to:
- Skip malformed or duplicate emails
- Warn if file is empty, missing, or not
.csv - Handle corrupt or non-CSV files
- Retry on rate-limit (429) errors
- Warn on internet/API key issues
| File | Description |
|---|---|
email_breach_checker/cli.py |
CLI implementation |
requirements.txt |
List of required packages |
emails.txt |
Example email list |
email_breach_checker_V2.py |
Updated standalone script |
README.md |
This file |
setup.py |
Packaging script |
output/summary_results.csv |
Results after scan |
output/failed_emails.log |
Emails that failed to process |
You can create a .deb package using stdeb:
pip install stdeb
python3 setup.py --command-packages=stdeb.command bdist_debThe resulting package will be placed in the deb_dist/ directory.