An Illustrated Guide to Cryptographic Hashes