A low-resource, easy to use, low latency, customizable and cryptographically secure implementation of Diceware
Project description
Meteor Diceware
A low-resource, easy to use, low latency, customizable and cryptographically secure implementation of Diceware which uses a single database which can populate millions of entries for possible words and can easily generate cryptographically strong and secure passwords which one can easily remember.
Installation
python3 -m pip install meteor-diceware
Note: By default, when you run meteor-diceware for the first time, it will install the main wordlist, which is the original diceware wordlist. This is done to have at least one default wordlist to create passphrases from
Other wordlists can be inserted manually through files or via the command line(Check utils
Creating a simple password
Meteor Diceware has a single syntax to go from
python3 -m meteor_diceware -n <noofwords> -d <delimiter> -s <noofspecialcharacters>
Ex:
$ python3 -m meteor_diceware -n 7 -d _ -s 4
> D7eferred_Sp%ur_Unifier_Unstamped_Gamma_Episode_/Sp~oof
You can also specify the wordlist with the -w
flag. By default, the main
wordlist is used(original diceware wordlist). However, you can also create and use other wordlists for your own taste. Check meteor_diceware.utils for the same.
Use cases
It's always advised to use >= 5 words for the password as well as to use >=2 special characters. To establish the same, one can do the following:
Ex:
$ python3 -m meteor_diceware -n 5 -d "_" -s 2
> For_2Says_For_Ch8aracters_Is
NOTE :: Please do not use diceware and then make obvious substituions like changing SANA to $^N^. It has been proven time and again that addition, not substitution is what makes a password more cryptographically secure. As in MALO0NE
is more secure than MAL0NE
Environment Variable [METEOR_DICEWARE_WORDSET_DEFAULT
]
The environment variable METEOR_DICEWARE_WORDSET_DEFAULT
can be used to specify the default wordlist to be used for diceware password generation. This can further be modified with the -w
option in the CLI
Using utils
meteor_diceware.utils
is a bundled accessory which helps generate, edit, delete, concatenate, backup and maintain wordlists.
The following actions can be performed via the utils command-line:
python3 -m meteor_diceware.utils create <wordlistname> -w <word1> <word2>... -f <text file to pull words from>
: Generate a new wordlist by the name<wordlistname>
utils edit <wordlistname> -w <word1> <word2> ... -f <file>
: It adds words to an existing database Note: Check more on using the snowflake flag in the file snowflake.pdf or snowflake.md *Note: You can useutils snowflake
to print all information about the--snowflake
flag on the terminalutils show <wordlistname>
: Shows summary and content information of the wordlistutils freeze <wordlistname> -o <file>
: Outputs all the words from the wordlist in the text file<file>
utils rm <wordlist1> <wordlist2> ...
: Remove one or more wordlists from the databaseutils ls
: Lists all the existing wordlists from the databaseutils cp <wordlist> -t <target>
: Copies wordlist to target within the database. Can be used as a backup of some sortutils cat <wordlist1> <wordlist2> .... -t <target>
: Concatenates files from all the different wordlists to the target wordlistutils recount <wordlist1> <wordlist2> ...
: Rebases and reindexes the wordlists. This counter/index is used internally within the program and is not exposed to the user.utils backup <wordlist1> <wordlist2> ... -o <file>
: Creates a copy of the wordlists into a separate SQLite Database file<file>
utils restore <file> -W <wordlist1> <wordlist2> --replace
: Restores wordlists from a separate file to the main databaseutils histogram <wordlist> --graphic/--tabular/--output <file>
: Creates a length histogram of the words in the wordlist and presents in both tabular and graphic form. Can also be exported to.csv
format if -o flag is used.utils scrape <wordlist> --links <link1> <link2> ...
: Scrape the links and add the words to the wordlist. Use--responsive
flag for responsive pages and use selenium.
Default Files
A text file actual_diceware.txt and an initialized database default.sqlite3 exist within the program. The actual_diceware.txt consists of words from the actual diceware program while the default.sqlite3 is a database which contains the default wordlist and the wordlists mechanism table.
Credits
The following Diceware Words List has been used as-is to create the main wordlist of the program.
Bugs
Any bugs or cryptographic suggestions can be sent to dev@aniruddh.ml
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file meteor-diceware-2.3.0.tar.gz
.
File metadata
- Download URL: meteor-diceware-2.3.0.tar.gz
- Upload date:
- Size: 266.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3714a52a99255007a8b71743ce335e6fdccbfbd6439f0350c03f3c37310ec1f9 |
|
MD5 | 9251862f48e71e29f3eebe7ce3a18cb9 |
|
BLAKE2b-256 | 1d79d9f8d034390f711ee23fb68b51acfac1cc6804fd0a8bf84f80dfd487481b |
File details
Details for the file meteor_diceware-2.3.0-py3-none-any.whl
.
File metadata
- Download URL: meteor_diceware-2.3.0-py3-none-any.whl
- Upload date:
- Size: 265.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f6e1791fe43004f3325bed36d3bb3eb6246423f686a18b40aad6fcbf8903792 |
|
MD5 | f5fe434b359d80f6e40e335624d15f48 |
|
BLAKE2b-256 | 3d94676efc1b2092ed83f03a498c6c6e93044984c45afc6dab4fdc68f354358f |