A comprehensive Python tool to detect duplicate passwords, URLs, and usernames in Bitwarden export files with multiple scanning passes for thoroughness and safety.
-
Download and run:
git clone https://github.com/yourusername/bitwarden-duplicate-checker.git cd bitwarden-duplicate-checker python bitwarden_duplicate_checker_gui.py -
Select your Bitwarden export file (JSON or CSV)
-
Click "Start Analysis" and review results
- Password Duplicates: Find identical passwords across different sites
- Username Duplicates: Detect reused usernames across accounts
- URL Duplicates: Detect multiple accounts on the same URL
- Domain Duplicates: Identify multiple services on the same domain
- Comprehensive Duplicates: Same username + password + URL combinations
- Machine Learning Analysis: Optional ML-based password similarity detection
- Multiple Input Formats: Support for both JSON and CSV Bitwarden exports
- Multiple Scan Passes: Configurable scanning passes (1-10) for thoroughness
- Clean Export: Generate duplicate-free exports in Bitwarden format
- Simple GUI: User-friendly interface with progress tracking
- Command Line Support: Full CLI for automation and scripting
- Detailed Reporting: Comprehensive text reports with masked passwords
- CSV Export: Structured data export for further analysis
- Python 3.7 or higher
- Optional: scikit-learn for ML analysis (
pip install scikit-learn)
git clone https://github.com/yourusername/bitwarden-duplicate-checker.git
cd bitwarden-duplicate-checkerpython bitwarden_duplicate_checker_gui.py# Basic usage
python bitwarden_duplicate_checker.py your_export.json
# With clean export
python bitwarden_duplicate_checker.py your_export.json --clean-export --clean-format json
# Multiple scan passes
python bitwarden_duplicate_checker.py your_export.json --passes 5from bitwarden_duplicate_checker import BitwardenDuplicateChecker
checker = BitwardenDuplicateChecker("export.json", scan_passes=3)
results = checker.run_analysis(
output_format='txt',
export_csv=True,
create_clean_export=True,
clean_export_format='json'
)Password Duplicates:
Password: MyPass***123
βββ Gmail ([email protected]) - gmail.com
βββ Facebook ([email protected]) - facebook.com
βββ Twitter ([email protected]) - twitter.com
URL Duplicates:
URL: gmail.com
βββ Gmail Personal ([email protected]) - Password: Per***123
βββ Gmail Work ([email protected]) - Password: Wor***456
βββ Gmail Backup ([email protected]) - Password: Bac***789
Comprehensive Duplicates:
Comprehensive: [email protected] + MyPass***123 + gmail.com
βββ Gmail Account 1
βββ Gmail Account 2 (duplicate)
usage: bitwarden_duplicate_checker.py [-h] [--passes PASSES] [--no-csv]
[--clean-export]
[--clean-format {json,csv}]
[--output {txt,json}] [--verbose]
json_file
positional arguments:
json_file Path to Bitwarden JSON or CSV export file
options:
-h, --help show this help message and exit
--passes PASSES Number of scanning passes (default: 3)
--no-csv Skip CSV export
--clean-export Create clean export with duplicates removed
--clean-format {json,csv}
Format for clean export (default: json)
--output {txt,json} Output format for report (default: txt)
--verbose, -v Enable verbose loggingAfter running analysis, you'll get:
duplicate_analysis_report_YYYYMMDD_HHMMSS.txt- Detailed analysis reportbitwarden_duplicates_YYYYMMDD_HHMMSS.csv- CSV export of duplicatesbitwarden_clean_export_YYYYMMDD_HHMMSS.json- Clean export (if enabled)
- Local Processing Only: All analysis happens on your device
- No Network Access: Tool doesn't connect to the internet
- Password Masking: Passwords are masked in all reports
- Secure Hashing: Passwords are hashed for comparison, not stored
- No Data Collection: Tool doesn't collect or store any data
- No Telemetry: No usage statistics or analytics
- Open Source: Full source code available for audit
- No Dependencies: Minimal external dependencies
This project is licensed under the MIT License - see the LICENSE file for details.