Hash, CRC, MD5, SHA1, rsync, PowerPC The idea of hashing predates diff and patch Theoretically, a hash is an injective, non-invertible, math function In practice, it's something that represents a file with a number It's a basic concept people study (and forget) in the first CS course CRC32: polynomial algorithm run on a bit sequence The CRC in the "cksum" command is a Posix standard MD5: message digest, by Dan Rivest Hash algorithm returning 128 bits, decently secure SHA1: secure hash algorithm (one) Hash algorithm returning 160 bits, more secure rsync is a remarkable application of the hash idea It allows synchronization of files or file trees It only exchanges the differences, limiting network traffic Even PowerPC virtual memory is based on a hash table Page tables are just one level (on x86 it was 2 levels, now 3) Memory size, and thus conflict rate, is configurable