Diceware passphrases from quantum random data

QDG is free and unencumbered software released into the Public Domain. For more information on the Public Domain visit Unlicense.org.


  • Simulates dice rolls by gathering quantum data.
  • Includes the standard Diceware Complete wordlist consisting of 7776 short words, abbreviations and easy-to-remember character strings.
  • Generate passphrases from custom wordlists.
  • Customize passphrase output with selectable length.

Python 3.6 or better is required.

How to Install

Using pip

$ pip install quantumdiceware

Building from source

$ wget --no-check-certificate --content-disposition https://github.com/justinsloan/QDG/archive/master.zip
$ unzip -a master.zip
$ cd ./QDG-master
$ python3 setup.py install

Basic Usage Examples

Generate a Passphrase

$ qdg

Generate five Passphrases and save them to output.txt

$ qdg -c 5 > output.txt

Generate two Passphrases that are eight words long

$ qdg -c 2 -w 8


By default, QDG will use quantum data to generate one passphrase consisting of six words selected from the Diceware Complete list. The default behavior requires an internet connection for gathering quantum data.

[-c, –count]
Specify the number of passphrases to generate. By default, QDG will only generate one (1) passphrase each time it is run.
[-w, –word]
Specify the length of the passphrase to generate. By default, QDG will generate passphrases with a length of six (6) words. The ‘–word’ option allows you to specify any number of words you prefer. This option will apply to all passphrases generated when used with the ‘–count’ option.
[-f, –file]
Specify a custom wordlist file. Custom wordlist files should be in plain text format with one dice roll per line. There are many alternate and foreign language wordlists available on the official Diceware website.
$ qdg --file ./alt_wordlist.txt
[-l, –local]
Use locally obtained random data. This is useful if there is no internet connection available or if local data is preferred.
[-v, -verbose]
Activates verbose mode. Dice rolls will be displayed along with the passphrase so they can easily be compared to the wordlist.
$ qdg -l -v
Using local random data...
Dice Rolls: 54642
Dice Rolls: 14415
Dice Rolls: 35165
Dice Rolls: 51352
Dice Rolls: 55552
Dice Rolls: 52242
soma blown karen rasa stoop rondo
Specify the character that is placed between words in the passphrase. A space character is used by default, but just about any character or arbitrary text of any length may be used.
$qdg --char -
$qdg --char ""
$qdg --char "my text"
vendmy textgristmy texthobbymy textmarkmy textenamelmy textjobmy text
Specify text to be added to the beginning of a passphrase.
Specify text to be added to the end of a passphrase.
Displays the version number and exits.

Where to Find Additional Support

You can get personal support or submit a bug report on GitHub Issues.

Version History

0.2.0 BETA - added –pretext option - aaded –posttext option

0.1.9 (6 January 2018)

  • added ‘–version’ option
  • improved verbose mode printing
  • updated documentation, switched to .rst format

0.1.8 (5 January 2018)

  • first build release