Skip to content

th-hoffmann/DicewarePy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ver esta página em Português

DicewarePy

Python License

A simple and secure passphrase generator based on the Diceware™ method created by Arnold G. Reinhold.

🎲 What is Diceware?

Diceware is a method for creating passphrases, passwords, and other cryptographic variables using an ordinary dice as a source of randomness. This method ensures that your passphrases are truly random and secure against various types of attacks.

For more information about the original Diceware™ method, visit: https://www.diceware.com/

✨ Features

  • 🌍 Multi-language support: English and Spanish wordlists included
  • 🎯 True randomness: Uses secure random number generation
  • 📝 7,776 words per language: Complete standard Diceware wordlists
  • 🖥️ Simple CLI interface: Easy-to-use command-line interface
  • 🔒 Secure: No internet connection required, runs completely offline

🚀 Quick Start

Prerequisites

  • Python 3.6 or higher

Installation

  1. Clone this repository:
git clone https://github.com/th-hoffmann/DicewarePy.git
cd DicewarePy
  1. Run the script:
python3 Diceware.py

Usage

  1. Run the program:

    python3 Diceware.py
  2. Select your language:

    • 1 for English
    • 2 for Español (Spanish)
    • 0 to Exit
  3. Choose the number of words for your passphrase (recommended: 6-8 words)

  4. Your secure passphrase will be generated!

📖 Example

$ python3 Diceware.py

    ██████╗ ██╗ ██████╗███████╗██╗    ██╗ █████╗ ██████╗ ███████╗██████╗ ██╗   ██╗
    ██╔══██╗██║██╔════╝██╔════╝██║    ██║██╔══██╗██╔══██╗██╔════╝██╔══██╗╚██╗ ██╔╝
    ██║  ██║██║██║     █████╗  ██║ █╗ ██║███████║██████╔╝█████╗  ██████╔╝ ╚████╔╝ 
    ██║  ██║██║██║     ██╔══╝  ██║███╗██║██╔══██║██╔══██╗██╔══╝  ██╔═══╝   ╚██╔╝  
    ██████╔╝██║╚██████╗███████╗╚███╔███╔╝██║  ██║██║  ██║███████╗██║        ██║   
    ╚═════╝ ╚═╝ ╚═════╝╚══════╝ ╚══╝╚══╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝╚═╝        ╚═╝   

                        Diceware Passphrase Generator

    1. English
    2. Español
    0. Exit

Select the language: 1
Enter the number of words for your password: 6

51234 -> horse
41356 -> battery
23145 -> staple
61432 -> correct
15234 -> amount
34512 -> system

🔐 Security Considerations

  • Use 6-8 words for strong security (recommended by security experts)
  • Each additional word exponentially increases security
  • Don't reuse passphrases across different accounts
  • Store securely using a password manager when possible

Passphrase Strength

Words Possible Combinations Equivalent Random Password
4 ~3.6 × 10¹⁵ ~51 bits
5 ~2.8 × 10¹⁹ ~64 bits
6 ~2.2 × 10²³ ~77 bits
7 ~1.7 × 10²⁷ ~90 bits
8 ~1.3 × 10³¹ ~103 bits

📁 Project Structure

DicewarePy/
├── Diceware.py      # Main application
├── english.txt      # English wordlist (7,776 words)
├── spanish.txt      # Spanish wordlist (7,776 words)
└── README.md        # This file

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Adding New Languages

To add support for a new language:

  1. Create a new wordlist file with 7,776 words (following Diceware format)
  2. Add the language option to the main menu
  3. Create a new function following the existing pattern
  4. Update this README

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Arnold G. Reinhold for creating the original Diceware™ method
  • The Electronic Frontier Foundation (EFF) for promoting secure password practices
  • The open-source community for various improvements and suggestions

📚 References


Note: Diceware™ is a trademark of Arnold G. Reinhold. This implementation is not affiliated with or endorsed by the original creator.


Releases

No releases published

Packages

 
 
 

Contributors

Languages