Generate strong passwords using /dev/urandom
. Creates a 17 character password using a-zA-Z0-9._!@#$%^&*()
characters by default.
$ pw
ZScTXCIP6(8vbsFU@
# clone repo
git clone https://github.com/brannondorsey/pw
cd pw
# install in PATH...
sudo cp pw /usr/bin/pw
# or call from directory with
./pw
Password length and custom character set can be passed as optional first and second arguments respectively. Number of passwords to generate can optionally be passed as the final parameter.
usage: pw [length [characters [num_passwords]]]
$ pw 10 a-zA-Z
KuacEiwjDT
$ pw 15 0-9
264679522188786
# you must escape special bash characters
$ pw 17 a-z\!\&
!q!gxglquw&nfrvlv
# generate 10 sh!tty passwords
$ pw 3 dog 10
god
dod
gog
odd
odd
goo
ddd
ogd
gdo
ooo
Here is the script:
$ cat pw
#!/bin/sh
# inspired by https://www.unix-ninja.com/p/A_cheat-sheet_for_password_crackers
# usage: pw [length [characters]]
tr -dc "${2:-'a-zA-Z0-9._!@#$%^&*()'}" < /dev/urandom | fold -w "${1:-17}" | head -n "${3:-1}"