Password Security Toolkit (PST) is a lightweight command-line toolkit for analyzing password strength and generate safe passwords. This project was created for learning purposes, focusing on Python, cybersecurity fundamentals, CLI design, and practical tooling.
Status: Feature-complete for version 1.0 — now focusing on polishing, documentation, and UX improvements.
Current Version: 1.0.0
-
Password Strength Checker
Evaluates a password using multiple criteria:- Length
- Uppercase & lowercase letters
- Digits
- Special characters
- Entropy estimation
- Common patterns (e.g., repeated characters) (WIP)
- Dictionary-based weakness detection (WIP)
-
Detailed Feedback
Explains exactly why a password is weak and how to improve it. -
Secure Password Generator Generates a random, strong password with customizable rules.
-
CLI Interface
Clean and extendable command-line interface using Python’sargparse.
Next Steps:
-
Password Checker:
-
Add entropy estimation (Done! ✅)
-
Add breach verification using a Bloom Filter
-
Add pattern detection
-
Improve password scoring model & feedback
-
-
Password Generator:
- Allow generating multiple passwords (--count) (Done! ✅)
-
CLI:
- Improve CLI UX (colors, formatting, subcommands)
- Improve --help/usage descriptions
-
Miscellaneous & Extras (Future implementations):
-
Turn into an installable package
-
Performance improvements
-
Add automated unit tests
-
Put more emojis into the documentation!! =) (Done! ✅)
-
Clone the repository:
git clone git@github.com:devogabs/password-security-toolkit.git
cd password-security-toolkit
Install dependencies:
pip install -r requirements.txt- Python 3.13 or above
- 'pip' package manager
Run the password checker:
python3 src/cli.py check "your_password_here"Example output:
Score: 3/5
Feedback:
- Good length ✔️
- Contains uppercase letters ✔️
- Contains digits ✔️
- Contains predictable patterns like '123' ❗
Run the password generator:
python3 src/cli.py generate
# Example output: "t-!Z1;\5Y~hT"src/
├── cli.py
├── password_checker.py
├── password_generator.py
└── __init__.py
.gitignore
README.md
LICENSE
CONTRIBUTING.md
.github/
├── ISSUE_TEMPLATE/
├── bug_report.md
└── feature_request.md
└── PULL_REQUEST_TEMPLATE.mdThis project follows several conventions to keep the codebase, commits, and contribution workflow clean and consistent:
Commits follow the format:
feat:a new featurefix:bug fixdocs:documentation changesstyle:formatting changes with no logic impactrefactor:code improvements that do not change behaviortest:adding or updating testschore:internal tasks with no effect on the tool’s logic
More details are available in CONTRIBUTING.md.
Contributions are welcome!
Please read the full guidelines before opening an issue or submitting a pull request:
This repository includes templates to streamline communication:
- Bug Report Template
- Feature Request Template
- Pull Request Template
They are located in:
.github/ISSUE_TEMPLATE/ and .github/pull_request_template.md
This project is licensed under the CC BY-NC-SA 4.0 license.
You are free to:
- Use, modify, and share the code for noncommercial purposes
- Create derivative works, as long as:
- You credit the author (Gabriel Bonesso)
- You share your changes under the same license
You are not allowed to:
- Use this project for commercial purposes
- Redistribute adaptations under a more permissive license
Full details are in the LICENSE file.
Thank you! :3