A small Tkinter desktop app to check password strength and generate strong random passwords, with one-click clipboard copy.
- Live strength check: Weak / Medium / Strong, scored on:
- Length
- Uppercase & lowercase letters
- Numbers
- Special characters
- Visual score bar (color-coded) + character checklist
- Secure random password generator (
secretsmodule — notrandom) - Customizable generator: length, and which character types to include
- Copy to clipboard button (checker section + generator section)
password_toolkit/
├── main.py # Entry point — run this
├── gui.py # Tkinter UI (widgets, layout, events only)
├── strength_checker.py # Strength-analysis logic (no UI)
├── password_generator.py # Secure password generation logic (no UI)
├── constants.py # Shared constants (char sets, colors, thresholds)
├── test_logic.py # Unit tests for the logic modules
└── README.md
The logic (strength_checker.py, password_generator.py) is fully separated
from the UI (gui.py), so it can be reused in a CLI, a web backend, or tested
independently — which is what test_logic.py does.
| Condition | Result |
|---|---|
| Length < 8 | Weak |
| Letters only | Weak |
| Letters + numbers | Medium |
| Letters + numbers + symbols, length ≤ 12 | Medium |
| Letters + numbers + symbols, length > 12 | Strong |
cd password_toolkit
python main.pyRequires only the Python standard library (tkinter, secrets, string) — no pip install needed.
python -m unittest test_logic.py