Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Easy command line random hash generator for Mac OS X, Linux, and FreeBSD.
#!/bin/sh
head -n 4096 /dev/urandom | openssl sha1
@rietta

This comment has been minimized.

Copy link
Owner Author

@rietta rietta commented Sep 5, 2012

I use this script to quickly generate random hash values. This is convenient for picking impossible to guess random file names.

@rietta

This comment has been minimized.

Copy link
Owner Author

@rietta rietta commented Sep 5, 2012

Example Invocation

frank@ptolemy ~ $ random_hash
(stdin)= 50d1d9827971b3d3689f6ac3b7e864c64556546034599113a89bbeb9dc5f9091

@rietta

This comment has been minimized.

Copy link
Owner Author

@rietta rietta commented Sep 5, 2012

I just noticed that openssl sha256 is not supported on my MacBook Air - the pro must have an alternate version of openssl installed from Brew or something. In any case, I updated the script to use sha1 which works on both. Here is an example invocation:

frank@Callisto ~/bin $ random_hash
43a4dacee1bc9ee1855efb24d8fcc8d39bb47391

@gonzopancho

This comment has been minimized.

Copy link

@gonzopancho gonzopancho commented Jul 15, 2018

sha224 was invented for exactly this “shorter hash” purpose. This is a hash function with a 224-bit output, which NIST defined in order to “match” (administratively speaking) the proclaimed 112-bit security of 3DES. They defined SHA-224 by taking SHA-256, changing the conventional IV, and truncating the output. For the truncation, they took the first 224 bits. See also: https://csrc.nist.gov/publications/detail/fips/180/4/final

$ head -n 4096 /dev/urandom | openssl sha224
05cac32284221f1a2f9218d12c121f298dbc18f8e589da5023c69a43

@crmpicco

This comment has been minimized.

Copy link

@crmpicco crmpicco commented Mar 16, 2020

This is a really useful snippet. Thank you for sharing 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment