A secure, multi-word password generator built in Java, inspired by the Diceware method.
This project was created as a personal learning exercise in Java development, focusing on modular design, user input handling, and clean separation of concerns between logic and UI.
π― High-entropy, multi-word password generation using the Diceware methodology.
This project generates secure passwords composed of multiple words selected from a Diceware word list. Each word is generated by simulating the roll of five dice, producing passwords that are both secure and memorable.
The generator includes:
- π» User-friendly command-line interface
- β Input validation for number of words
- β±οΈ Step-by-step generation with optional delays (learning-oriented)
- π§ Encouragement to create mnemonic stories for memorization
π‘ Real-world security concepts applied through hands-on Java development.
The idea for this project came while watching a video by Bruno Fraga:
Crie a SENHA MAIS SEGURA do mundo
The goal was to automate the Diceware process, transforming a manual security practice into a clean, testable, and reusable Java application.
β¨ Focused on security, clarity, and learning.
- π Generates passwords with a configurable number of words
- π² Uses
SecureRandomfor cryptographically strong dice rolls - π Displays dice rolls and word mapping (educational, optional)
- β‘ Lightweight Java console application
- π‘οΈ Encourages secure password creation practices
π‘ Tip: For higher security, use more than three words and build a short mnemonic story.
π οΈ Java-focused design with clear separation of concerns.
- Language: Java 17+
- Application Type: Console-based
PasswordGeneratorβ application entry point and execution loopPaorsswdβ password generation and dice roll logicDicewareRepositoryβ loads and maps the Diceware word listConsoleUIβ handles user input, menus, validation, and delays
- πΉ Clear separation between UI and business logic
- πΉ Encapsulated input handling and sleep logic for readability
- πΉ Secure random number generation via
SecureRandom - πΉ Input validation to prevent invalid or unsafe configurations
π Based on the official Diceware word list (7,776 words).
Each line contains a five-digit dice key followed by its corresponding word.
This project uses the list strictly for educational purposes.
All credits belong to the original Diceware authors.
π Acknowledgements and references.
- Diceware concept: Arnold G. Reinhold
- Word list: Diceware / ThoughtWorks repository
- Java implementation: Rayssa Reis

