Hash functions have a very simple purpose—they *take a potentially long message* and *generate a unique output* value derived from the content of the message. There are five basic requirements for a cryptographic hash function: - They accept an input of any length. - They produce an output of a fixed length, regardless of the length of the input. - The hash value is relatively easy to compute. - The hash function is one-way (meaning that it is extremely hard to determine the input when provided with the output). - The hash function is collision free (meaning that it is extremely hard to find two messages that produce the same hash value). ### Hashing Algorithms - [[Secure Hashing Algorithms|SHA]] - [[MD5]]