A beginner-friendly Java command-line tool that checks password strength and gives clear security recommendations.
This project is part of my journey toward becoming a Secure AI Engineer by building practical software with a cybersecurity mindset.
Short GitHub description:
Java CLI tool for checking password strength while practicing secure coding, input validation, and cybersecurity fundamentals.
Recommended visibility: Public
Recommended topics:
java cybersecurity secure-coding password-security cli-tool beginner-project owasp student-project
- Checks password length
- Detects uppercase letters, lowercase letters, numbers, and symbols
- Detects common weak passwords
- Gives a strength rating:
WEAK,MODERATE, orSTRONG - Provides improvement suggestions
- Does not store, log, or transmit passwords
- Includes beginner-friendly Java code and unit tests
- Java 17+
- Maven
- JUnit 5 for tests
- IntelliJ IDEA or VS Code
secure-password-checker-java/
├── src/
│ ├── main/java/com/mrhays/security/passwordchecker/
│ │ ├── App.java
│ │ ├── PasswordAnalysis.java
│ │ ├── PasswordRating.java
│ │ └── PasswordStrengthChecker.java
│ └── test/java/com/mrhays/security/passwordchecker/
│ └── PasswordStrengthCheckerTest.java
├── docs/
│ └── ROADMAP.md
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ └── java-ci.yml
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── pom.xml
├── README.md
└── SECURITY.md
git clone https://github.com/Mrhays007/secure-password-checker-java.git
cd secure-password-checker-javamvn testmvn clean packagemvn exec:javaAlternatively, open the project in IntelliJ IDEA and run App.java.
====================================
Secure Password Checker - Java
====================================
Enter a password to analyze: ********
Rating: STRONG
Score: 90/100
Positive checks:
- Good length
- Contains uppercase letters
- Contains lowercase letters
- Contains numbers
- Contains symbols
Suggestions:
- No major issues found. Keep using unique passwords for every account.
This is an educational project and is not intended to be used as a production password manager or authentication system.
Security-conscious practices included:
- Passwords are not saved to files
- Passwords are not printed back to the terminal
- Password analysis happens locally
- Common weak passwords are rejected
- Input is validated before analysis
Future improvements:
- Add password entropy estimation
- Add larger common-password blocklist support
- Add password breach-checking concept notes without sending passwords directly
- Add GUI or web version later
Through this project, I am practicing:
- Java classes and methods
- Input validation
- Basic security thinking
- Clean project structure
- Writing technical documentation
- Writing unit tests
- Using GitHub issues and pull requests professionally
See docs/ROADMAP.md.
This repository includes a GitHub Actions workflow that runs mvn test on every push or pull request to main.
This project is licensed under the MIT License. See LICENSE for details.