How to Generate Random UNIX Passwords From the Command Line
There are probably a million and one individual pieces of software and websites you can use to generate a randomized password string. But the truth of the matter is that, if you have a UNIX machine, you don’t need them at all! Here’s how to generate a randomized password using widely available UNIX commands.
UNIX is really, really good at generating random output. In fact, there is a device dedicated specifically to this cause. Meet /dev/random. We will be using this device as the source of our random password.
What about ASCII?
/dev/random provides us with some *really* random output. If you were to use a section of this random output in its raw form you would likely run into characters that are hard if not impossible to enter with your keyboard. To address this we will use uuencode to convert the raw output into a more human readable base64 version.
Putting it all together
Using dd we can take a small slice of randomness and pipe it into uuencode. The second to last line will be our randomized password.
Note: you may need to install the ‘sharutils’ package onto your system if uuencode isn’t installed by default.
$ dd if=/dev/random bs=1 count=12 | uuencode -m - begin-base64 644 - 12+0 records in 12+0 records out 12 bytes transferred in 0.000165 secs (72734 bytes/sec) KJ1yeC4MtSg5QQCY ====
“dd if=/dev/random bs=1 count=12 ” outputs 12 (count=12) bytes (bs=1) of random data (if=/dev/random).
“| uuencode -m -” This reads the input from the previous command (pipe and trailing -) and encodes it into base64 (-m)
And there you have it, your shiny new random password!