The MD4, MD5 and SHA-1 algorithms are all secure hash functions. They take a string as input, and produce a fixed size number – 128 bits for MD4 and MD5; 160 bits for SHA-1. This number is a hash of the input – a small change in the input results in a substantial change in the output number. The functions are thought to be secure in the sense that it requires an enormous amount of computing power and time to find a string which hashes to a chosen value. In others words, there’s no way to decrypt a secure hash. The uses of secure hashes include digital signatures and challenge hash authentication.