# Reinhold
## Background
For passwords you don't need to remember, there's 1Password. For everything else, there's diceware.
Diceware was created by Arnold Reinhold, hence the name of this application.
I built this tool because I wanted a quick and secure local diceware password generator. Also because I wanted to build something with Rust.
For a quick overview of what diceware is, check [wikipedia](https://en.wikipedia.org/wiki/Diceware).
For a good discussion of strong master passwords, see this post from [1Password](https://blog.1password.com/toward-better-master-passwords/).
EFF's word lists are available [here](https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases). This tool accepts any number of consecutive rolls.
The best explanation, really, is [xkdc #936](https://www.explainxkcd.com/wiki/index.php/936:_Password_Strength):
![xkcd ftw](xkcd_password_strength.png)
## Usage
```bash
USAGE:
reinhold [OPTIONS] --input --length
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --input Sets the input file to use
-l, --length Number of words to generate
-s, --separator Word separator (defaults to space)
```
> NB: I strongly recommend manipulating the output in some way. [xkpassword](https://xkpasswd.net/s/) provides some solid options for doing so.
You can also supply your own list if it matches the format of the EFF list. That is as follows, with the first column representing consecutive rolls:
```bash
11111 abacus
11112 abdomen
11113 abdominal
11114 abide
11115 abiding
11116 ability
11121 ablaze
11122 able
11123 abnormal
```
## Planned improvements
- [x] Support the use of word lists that accept an arbitrary number of dice.
- [x] Enable different separators
- [x] Enable custom words
- [ ] Enable case transformations
- [ ] Enable padding digits or characters