What's new
Realism engine (the point of a credential generator):
- Frequency-weighted passwords — the actual top real-world passwords (123456, password, qwerty, letmein...) dominate the tail, exactly like real breach distributions. 20 weighted generation patterns on top.
- Per-country email domains weighted by real registration stats (gmail-heavy US/IN, mail.ru in RU, bol.com.br in BR, web.de in DE, yahoo.co.jp in JP).
- Age-weighted birth years (1975-1995 heavy).
New capabilities:
- Format 6: password-only wordlist mode — one password per line, ready for hashcat rules or password spraying.
- --unique (default on) / --no-unique / --min-length for candidate-list filtering.
- Reproducible output via --seed.
Fixes:
- Interactive format selection now actually controls the output format (previously randomized per line).
- Country-specific domains now actually used (previously claimed in README, ignored in code).
- Install docs match the real filename (was credforge.py, file was email_password_generator.py).
- Real MIT LICENSE file + pyproject.toml → pip install credforge.
Verified: 6/6 formats strict-valid, dedup 50/50, min-length honored, seed deterministic, 8/8 top passwords present in 2000-line sample.