An algorithm that is calculated against a stream of data with the end result being a 128-bit value that is unique to that stream of data. An MD5 can be thought of as a fingerprint which is unique.