A Java Spring Boot service to attempt recovering passwords from password-protected archives using wordlists. Supports single-threaded, multi-threaded cracking.
- Upload password-protected archives via web UI.
- Select or specify a wordlist for brute-force attempts.
- Backend job management and status polling.
- Multi-threaded CPU cracker.
- Wordlist storage in MySQL (configurable).
Prerequisites:
- Java 17+ (OpenJDK)
- Maven wrapper (project includes
mvnw.cmd) - MySQL server if you use DB-backed wordlists
- Build the project:
# Clean and build
.\mvnw.cmd clean install- Configure the application (edit
src/main/resources/application.propertiesor set env vars):
# Example properties
spring.datasource.url=jdbc:mysql://localhost:3306/passwordcracker?allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username=youruser
spring.datasource.password=yourpassword- Run the app:
# Run via Spring Boot plugin
.\mvnw.cmd spring-boot:run
# Or run the packaged jar
java -jar target\multithreaded-password-cracker-<version>.jar- Open the UI in your browser (default):
http://localhost:8080/
- Frontend static files are served from
src/main/resources/static. After edits, run a clean build to copy them intotarget/classes/static - If Spring DevTools causes stale classloading, disable restart in
application.properties:
spring.devtools.restart.enabled=false-
Old static files still appear after rebuild:
- Manually delete
targetand runmvnw.cmd clean install. - Ensure no other instance of the app (or an older JAR) is running.
- Manually delete
-
MySQL
Public Key Retrieval is not allowederror:- Add
allowPublicKeyRetrieval=trueto your JDBC URL anduseSSL=falseif appropriate. - Example:
jdbc:mysql://host:3306/db?allowPublicKeyRetrieval=true&useSSL=false
- Add
This project is released under the MIT License. See LICENSE for details.