A comprehensive password security toolkit that can check password strength, generate secure passwords, and perform advanced pattern analysis to identify vulnerabilities.
- Evaluates password strength with detailed metrics
- Detects common passwords
- Calculates password entropy
- Analyzes character composition
- Creates strong random passwords with configurable options
- Generates memorable passphrases from wordlists
- Creates secure PINs
- Detects keyboard patterns (e.g., "qwerty", "asdf")
- Identifies sequential characters and repeated patterns
- Detects dictionary words, names, and surnames
- Recognizes common patterns like dates, years, and word+number combinations
- Clone the repository:
git clone https://github.com/MathiasVbech/securepass.git
cd securepass
- No external dependencies are required! This project uses only the Python standard library.
# Basic interactive mode
python3 securepass.py check -i --common-passwords dictionaries/common_passwords.txt
# Advanced analysis with pattern detection
python3 securepass.py check -i --advanced --common-passwords dictionaries/common_passwords.txt --dict-dir dictionaries/# Generate a random password
python3 securepass.py generate --common-passwords dictionaries/common_passwords.txt
# Generate a memorable passphrase
python3 securepass.py generate --type passphrase --word-list dictionaries/wordlists/wordlist.txt --common-passwords dictionaries/common_passwords.txt# Check multiple passwords from a file
python3 securepass.py check -f passwords.txt --common-passwords dictionaries/common_passwords.txt
# Generate multiple passwords
python3 securepass.py generate --count 10 --common-passwords dictionaries/common_passwords.txt# Run all tests
python3 -m unittest tests/test_securepass.py
# Run test directly
python3 tests/test_securepass.pyPassword: ***********
Length: 11 characters
Strength: MODERATE (55/100)
Character Composition:
Lowercase letters: Yes
Uppercase letters: Yes
Numbers: Yes
Special symbols: No
Character variety: 3 of 4 possible types
Entropy: 65.32 bits
Advanced Analysis:
Risk Score: 45/100
Vulnerabilities Detected:
Dictionary word: 'secure' - high risk
Common number suffix: '123' - very high risk
Suggestions:
- Add special characters
- Avoid simple patterns like adding numbers at the end of words
- Increase length to at least 12 characters
For more comprehensive analysis, you can replace the included sample files with larger dictionaries:
- common_passwords.txt: Lists of common passwords
- first_names.txt: Common first names
- last_names.txt: Common surnames
- dictionary.txt: Dictionary words
- wordlist.txt: Words for passphrase generation
Larger dictionaries can be found at:
securepass/
├── securepass.py # Main command-line interface
│
├── src/ # Core package
│ ├── __init__.py # Package definition
│ ├── password_checker.py # Password strength evaluation
│ ├── password_generator.py # Password generation
│ └── advanced_analytics.py # Advanced pattern detection
│
├── dictionaries/ # Dictionary files
│ ├── common_passwords.txt
│ ├── first_names.txt
│ ├── last_names.txt
│ ├── dictionary.txt
│ └── wordlists/
│ └── wordlist.txt
│
└── tests/ # Test suite
└── test_securepass.py # Comprehensive tests
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Inspired by NIST password guidelines
- Wordlist approach based on EFF's Diceware method
- Pattern detection influenced by common password cracking techniques