Password Checker is a web-based tool that allows users to check the strength of their passwords and generate secure passwords using various methods. It provides insights into password strength based on multiple criteria and ensures adherence to strong password standards.
- Evaluates passwords based on:
- Length (minimum 8 characters).
- Mix of uppercase and lowercase letters.
- Presence of numbers.
- Inclusion of special characters (e.g.,
@,#,!). - Avoidance of common passwords and keyboard patterns.
- Repetition of characters (e.g.,
aaa).
- Provides detailed feedback on how to improve weak passwords.
- Generates secure passwords with two modes:
- Random character-based passwords.
- Word-based passwords, using a list of predefined words for readability.
- Allows customization of password length and word usage.
- Measures performance for:
- Time taken to determine each password strength factor.
- Average generation times for word-based and character-based passwords.
- Percentage of strong passwords generated.
- Python 3.8 or later
- Flask
- pip (Python package installer)
- Clone the repository:
git clone git@github.com:gyamfi01/Password_Checker.git
- Navigate to the project directory:
cd Password_Checker - Install dependencies:
pip install -r requirements.txt
- Run the application:
python password_checker.py
- Open the application in your browser:
http://127.0.0.1:5000
- Main script implementing the password strength checker, generator, and empirical study.
- Frontend for the web-based interface.
- List of commonly used passwords to avoid.
- List of words used for generating word-based passwords.
- Enter a password in the "Check Password Strength" section.
- Click Check Strength.
- View feedback on the password's strength and suggestions for improvement.
- Specify the desired length of the password.
- Enable or disable word-based passwords.
- Click Generate Password.
- View the generated password in the display area.
To run the empirical study, execute the script in study mode:
python password_checker.py studyThe study will:
- Measure and display the time taken for each password strength factor.
- Compare word-based and character-based password generation times.
- Log and analyze the strength of generated passwords.
Strength: Weak
Feedback:
- ❌ Too short! Password must be at least 8 characters long.
- ❌ Missing a mix of upper and lower case letters.
- ❌ No special characters. Spice it up with @, #, or $!
Generated Password: SkyBamboo74)
=== Password Strength Factor Times ===
Length Check: 0.001 ms
Upper/Lower Case Mix: 0.082 ms
...
=== Password Generation Times ===
Word-based: 0.006 ms
Regular: 0.009 ms
=== Password Strength Results ===
Word-based: 5/5 passed as Strong
Regular: 4/5 passed as Strong
Contributions are welcome! Feel free to fork this repository and submit a pull request with your improvements.
This project is licensed under the MIT License. See the LICENSE file for details.