https://github.com/0xbadawy/checkmypass
Password Strength Analyzer: A comprehensive tool that evaluates the strength of passwords by analyzing their length, complexity, entropy, and patterns like dictionary words or sequences. It also offers recommendations to help users create more secure passwords.
https://github.com/0xbadawy/checkmypass
password password-check password-checker password-generator password-strength reactjs tailwind website
Last synced: about 2 months ago
JSON representation
Password Strength Analyzer: A comprehensive tool that evaluates the strength of passwords by analyzing their length, complexity, entropy, and patterns like dictionary words or sequences. It also offers recommendations to help users create more secure passwords.
- Host: GitHub
- URL: https://github.com/0xbadawy/checkmypass
- Owner: 0xBadawy
- Created: 2024-12-15T21:19:23.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-12-23T06:31:13.000Z (5 months ago)
- Last Synced: 2025-02-14T15:46:19.437Z (3 months ago)
- Topics: password, password-check, password-checker, password-generator, password-strength, reactjs, tailwind, website
- Language: JavaScript
- Homepage: https://checkmypass-2a096.web.app/
- Size: 1.47 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This project is a **Password Strength Analyzer** designed to evaluate the strength of passwords based on various factors. It assesses the length, complexity, entropy, and common patterns (such as dictionary words and sequential characters). The tool also provides actionable recommendations for creating stronger passwords.
## Images
![]()
![]()
## Features
- **Length Evaluation**: Checks if the password meets the minimum recommended length (e.g., 8 characters).
- **Complexity Analysis**: Evaluates if the password contains a mix of uppercase letters, lowercase letters, digits, and special characters.
- **Entropy Calculation**: Measures the randomness of the password using entropy calculations to provide an objective strength metric.
- **Pattern Detection**: Identifies common patterns such as:
- Dictionary words (e.g., "password" or "letmein").
- Sequential characters (e.g., "1234" or "abcd").
- Repeated characters (e.g., "aaaa" or "1111").
- **Strength Rating**: Provides an overall password strength rating categorized as:
- Weak
- Medium
- Strong
- **Recommendations**: Offers actionable suggestions for creating a stronger password, such as increasing length or adding special characters.## Formula Used:
### $$\[ H = \log_2 \left( N^L \right) \]$$
Where:
- \( N \) is the number of possible characters used (e.g., 26 for lowercase letters, 52 for uppercase + lowercase, 62 for letters and numbers).
- \( L \) is the password length.## Example:
For a password of length 8 using letters and numbers (62 possibilities):
$$\[ H = \log_2 (62^8) \approx 47.9 \text{ bits of entropy} \]$$
## Interpretation:
- **Higher entropy** implies greater password strength, making it more resistant to brute-force attacks.
- Entropy is measured in bits, with each additional bit doubling the number of guesses required.## Practical Notes:
1. **Character Set Size (\( N \))**:
- Lowercase letters only: 26
- Uppercase + lowercase letters: 52
- Letters + numbers: 62
- Letters, numbers, and special characters: Typically 94 (depending on the allowed special characters).2. **Password Length (\( L \))**:
- Increasing \( L \) has a significant impact on entropy due to exponential growth.
- A longer password with a smaller character set can often be stronger than a shorter password with a larger character set.## Key Takeaway:
To maximize password security, aim for a combination of a large character set and sufficient length to achieve high entropy.
## Technologies Used
- **Frontend**:
- **React.js**: For building a responsive and dynamic user interface.
- **Tailwind CSS**: For creating modern and visually appealing styles with a utility-first CSS framework.## Future Enhancements
- **Real-time Feedback**: Provide instant feedback as users type their passwords.
- **Localization**: Support for multiple languages to cater to a broader audience.
- **Dark Mode**: Introduce a dark mode theme for better accessibility and user experience.
- **Browser Extension**: Develop a browser extension for analyzing passwords directly within login forms.
- **Database Integration**: Check passwords against known breached password databases for added security.