## Meteor Diceware
A low-resource, easy to use, low latency, customizable and cryptographically secure implementation of [Diceware](https://en.wikipedia.org/wiki/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](#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](#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
#### <a name="utils">Using utils</a>
`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:
1. `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>`
2. `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 use `utils snowflake` to print all information about the `--snowflake` flag on the terminal
3. `utils show <wordlistname>` : Shows summary and content information of the wordlist
4. `utils freeze <wordlistname> -o <file>` : Outputs all the words from the wordlist in the text file `<file>`
5. `utils rm <wordlist1> <wordlist2> ...` : Remove one or more wordlists from the database
6. `utils ls` : Lists all the existing wordlists from the database
7. `utils cp <wordlist> -t <target>` : Copies wordlist to target within the database. Can be used as a backup of some sort
8. `utils cat <wordlist1> <wordlist2> .... -t <target>` : Concatenates files from all the different wordlists to the target wordlist
9. `utils recount <wordlist1> <wordlist2> ...` : Rebases and reindexes the wordlists. This counter/index is used internally within the program and is not exposed to the user.
10. `utils backup <wordlist1> <wordlist2> ... -o <file>` : Creates a copy of the wordlists into a separate SQLite Database file `<file>`
11. `utils restore <file> -W <wordlist1> <wordlist2> --replace` : Restores wordlists from a separate file to the main database
12. `utils 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.
13. `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](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) 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](mailto:dev@aniruddh.ml)
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/loggerheads-with-binary/meteor-diceware/",
"name": "meteor-diceware",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Anna Aniruddh Radhakrishnan",
"author_email": "dev@aniruddh.ml",
"download_url": "https://files.pythonhosted.org/packages/1d/79/d9f8d034390f711ee23fb68b51acfac1cc6804fd0a8bf84f80dfd487481b/meteor-diceware-2.3.0.tar.gz",
"platform": null,
"description": "## Meteor Diceware \nA low-resource, easy to use, low latency, customizable and cryptographically secure implementation of [Diceware](https://en.wikipedia.org/wiki/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. \n\n#### Installation \n\n```\npython3 -m pip install meteor-diceware\n```\n\n**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** \n\n**Other wordlists can be inserted manually through files or via the command line(Check [utils](#utils)** \n\n## Creating a simple password \n\nMeteor Diceware has a single syntax to go from\n\n```\npython3 -m meteor_diceware -n <noofwords> -d <delimiter> -s <noofspecialcharacters> \n```\n\nEx:\n```\n$ python3 -m meteor_diceware -n 7 -d _ -s 4 \n> D7eferred_Sp%ur_Unifier_Unstamped_Gamma_Episode_/Sp~oof\n```\n\nYou 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](#utils) for the same. \n\n#### Use cases \n\nIt'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:\n\nEx: \n```\n$ python3 -m meteor_diceware -n 5 -d \"_\" -s 2 \n> For_2Says_For_Ch8aracters_Is \n```\n\nNOTE :: 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`\n\n\n### Environment Variable [`METEOR_DICEWARE_WORDSET_DEFAULT`]\nThe 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\n\n#### <a name=\"utils\">Using utils</a> \n\n`meteor_diceware.utils` is a bundled accessory which helps generate, edit, delete, concatenate, backup and maintain wordlists. \n\nThe following actions can be performed via the utils command-line:\n\n1. `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>`\n2. `utils edit <wordlistname> -w <word1> <word2> ... -f <file>` : It adds words to an existing database \n*Note: Check more on using the snowflake flag in the file snowflake.pdf or snowflake.md*\n*Note: You can use `utils snowflake` to print all information about the `--snowflake` flag on the terminal \n3. `utils show <wordlistname>` : Shows summary and content information of the wordlist \n4. `utils freeze <wordlistname> -o <file>` : Outputs all the words from the wordlist in the text file `<file>`\n5. `utils rm <wordlist1> <wordlist2> ...` : Remove one or more wordlists from the database\n6. `utils ls` : Lists all the existing wordlists from the database\n7. `utils cp <wordlist> -t <target>` : Copies wordlist to target within the database. Can be used as a backup of some sort\n8. `utils cat <wordlist1> <wordlist2> .... -t <target>` : Concatenates files from all the different wordlists to the target wordlist\n9. `utils recount <wordlist1> <wordlist2> ...` : Rebases and reindexes the wordlists. This counter/index is used internally within the program and is not exposed to the user.\n10. `utils backup <wordlist1> <wordlist2> ... -o <file>` : Creates a copy of the wordlists into a separate SQLite Database file `<file>`\n11. `utils restore <file> -W <wordlist1> <wordlist2> --replace` : Restores wordlists from a separate file to the main database \n12. `utils 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.\n13. `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. \n\n#### Default Files \n\nA 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.\n\n#### Credits \n\nThe following [Diceware Words List](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt) has been used as-is to create the main wordlist of the program. \n\n#### Bugs \n\nAny bugs or cryptographic suggestions can be sent to [dev@aniruddh.ml](mailto:dev@aniruddh.ml) \n\n",
"bugtrack_url": null,
"license": "",
"summary": "A low-resource, easy to use, low latency, customizable and cryptographically secure implementation of Diceware",
"version": "2.3.0",
"split_keywords": [],
"urls": [
{
"comment_text": "Included the new `METEOR_DICEWARE_WORDSET_DEFAULT` environment variable",
"digests": {
"md5": "f5fe434b359d80f6e40e335624d15f48",
"sha256": "3f6e1791fe43004f3325bed36d3bb3eb6246423f686a18b40aad6fcbf8903792"
},
"downloads": -1,
"filename": "meteor_diceware-2.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f5fe434b359d80f6e40e335624d15f48",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 265690,
"upload_time": "2022-12-21T15:13:42",
"upload_time_iso_8601": "2022-12-21T15:13:42.160418Z",
"url": "https://files.pythonhosted.org/packages/3d/94/676efc1b2092ed83f03a498c6c6e93044984c45afc6dab4fdc68f354358f/meteor_diceware-2.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "Included the new `METEOR_DICEWARE_WORDSET_DEFAULT` environment variable",
"digests": {
"md5": "9251862f48e71e29f3eebe7ce3a18cb9",
"sha256": "3714a52a99255007a8b71743ce335e6fdccbfbd6439f0350c03f3c37310ec1f9"
},
"downloads": -1,
"filename": "meteor-diceware-2.3.0.tar.gz",
"has_sig": false,
"md5_digest": "9251862f48e71e29f3eebe7ce3a18cb9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 266849,
"upload_time": "2022-12-21T15:13:46",
"upload_time_iso_8601": "2022-12-21T15:13:46.334277Z",
"url": "https://files.pythonhosted.org/packages/1d/79/d9f8d034390f711ee23fb68b51acfac1cc6804fd0a8bf84f80dfd487481b/meteor-diceware-2.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-21 15:13:46",
"github": false,
"gitlab": true,
"bitbucket": false,
"gitlab_user": "loggerheads-with-binary",
"gitlab_project": "meteor-diceware",
"lcname": "meteor-diceware"
}