rusty-diceware

Commandline diceware, with or without dice, written in Rustlang.
git clone https://kaka.farm/~git/rusty-diceware
Log | Files | Refs | README | LICENSE

README.md (4660B)


      1 # rusty-diceware - a password generator using wordlists
      2 
      3 Commandline [Diceware][diceware] ([Wayback Machine mirror][diceware-wayback]), with or without dice, written in [rustlang][rustlang].
      4 
      5 Please use [Gitlab][gitlab-mirror] for anything whatsoever. Github is just a mirror.
      6 
      7 [CHANGELOG here](/CHANGELOG.md).
      8 
      9 Inspired by the great passphrase generating solution [Diceware][diceware] ([Wayback Machine mirror][diceware-wayback]) invented by [Arnold G. Reinhold][arnold] ([Wayback Machine mirror][arnold-wayback]) and by Randall Monroe’s [xkcd#936][xkcd-936]:
     10 
     11 ![“Hidden” alt text jokes are a pain in the ass.](/bin/imgs.xkcd.com/comics/password_strength.png)
     12 
     13 ## Usage:
     14 
     15 ```
     16 Usage: diceware [options]
     17 
     18 Options:
     19     -h, --help          This help message.
     20     -e, --entropy       Display number of entropy bits.
     21     -r, --dicerolls     Provide results of physical dice rolls. Word per line,
     22                         same digit order as in the files, digits between and
     23                         including 1 and 6.
     24     -n, --nword NWORD   Number of words in a passphrase.
     25     -d, --delimiter DELIM
     26                         The delimiter character used to separate the words.
     27     -f, --wordlist-file FILE
     28                         Path to a wordlist file.
     29     -l, --wordlist WORDLIST
     30                         Wordlist to use. (efflong (default), effshort1,
     31                         effshort2, minilock, reinhold, or beale)
     32 ```
     33 
     34 ## Featuring
     35 
     36 * The three wordlists mentioned in EFF's [Diceware Guide][eff-diceware-guide]:
     37     * [EFF Long Wordlist][eff-long-wordlist].
     38     * [EFF Short Wordlist #1][eff-short-wordlist-1].
     39     * [EFF Short Wordlist #2][eff-short-wordlist-2-0].
     40 * The original [Reinhold wordlist][reinhold-wordlist-asc] ([Wayback Machine mirror][reinhold-wordlist-asc-wayback]).
     41 * The [Beale wordlist][beale-wordlist-asc] ([Wayback Machine mirror][beale-wordlist-asc-wayback]).
     42 * The [MiniLock][minilock] ([github][minilock-github])wordlist. (found in the [phrase.js][minilock-phrase-js] file)
     43 * The all new `--wordlist-file` command line option which loads and uses your very own newline delimited wordlist file. Inquire within!
     44 * Physical dice roll! You can (don't use echo, it will show up in `ps` and show your rolls to other users):
     45 
     46     ```
     47     $ cat | diceware -l efflong -r
     48     111111
     49     111112
     50     ^D
     51     abacus abdomen
     52     ```
     53 * Wordlists live in their own [diceware_wordlists][diceware_wordlists] crate you can use for your own wicked deeds.
     54 
     55 ## Mirrors
     56 
     57 * [Gitlab][gitlab-mirror] is the main repository.
     58 * [Github][github-mirror] is just a mirror.
     59 
     60 ## Say hello, chat, and/or lurch, aka "community"
     61 
     62 You can say hello and/or rant about how terrible rusty-diceware is in the [#rusty-diceware:matrix.org](https://matrix.to/#/#rusty-diceware:matrix.org) chat room.
     63 
     64 ## Tips
     65 
     66 If you want to tip for this work, I have set up a Liberapay account:
     67 
     68 <script src="https://liberapay.com/yuvallanger/widgets/button.js"></script>
     69 <noscript><a href="https://liberapay.com/yuvallanger/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></noscript>
     70 
     71 [gitlab-mirror]: <https://gitlab.com/yuvallanger/rusty-diceware/>
     72 [github-mirror]: <https://github.com/yuvallanger/rusty-diceware/>
     73 
     74 [diceware_wordlists]: <https://crates.io/crates/diceware_wordlists>
     75 
     76 [eff-diceware-guide]: <https://www.eff.org/dice>
     77 [eff-long-wordlist]: <https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt>
     78 [eff-short-wordlist-1]: <https://www.eff.org/files/2016/09/08/eff_short_wordlist_1.txt>
     79 [eff-short-wordlist-2-0]: <https://www.eff.org/files/2016/09/08/eff_short_wordlist_2_0.txt>
     80 
     81 [arnold]: <https://theworld.com/~reinhold/>
     82 [diceware]: <https://theworld.com/~reinhold/diceware.html>
     83 
     84 [arnold-wayback]: <https://web.archive.org/web/20220608141106/https://theworld.com/~reinhold/>
     85 [diceware-wayback]: <https://web.archive.org/web/20220817092807/https://theworld.com/~reinhold/diceware.html>
     86 
     87 [beale-wordlist-asc]: <https://theworld.com/~reinhold/beale.wordlist.asc>
     88 [reinhold-wordlist-asc]: <https://theworld.com/~reinhold/diceware.wordlist.asc>
     89 [minilock-phrase-js]: <https://github.com/kaepora/miniLock/blob/71dcf431886068c9ec7f563c3e4158153229b202/src/js/lib/phrase.js>
     90 
     91 [beale-wordlist-asc-wayback]: <https://web.archive.org/web/20220602072646/https://theworld.com/~reinhold/beale.wordlist.asc>
     92 [reinhold-wordlist-asc-wayback]: <https://web.archive.org/web/20220820102521/https://theworld.com/~reinhold/diceware.wordlist.asc>
     93 
     94 
     95 [rustlang]: <http://rust-lang.org>
     96 
     97 [xkcd-936]: <https://www.explainxkcd.com/wiki/index.php/936>
     98 
     99 [minilock]: <http://minilock.io>
    100 [minilock-github]: <https://github.com/kaepora/miniLock/>