I have read some times that hashing is a one way function, that is you can make the hash of a message, but you can't recover the original message from the hash, just check its integrity.
However, if this were true, why can we decrypt MD5 hashes and get the original data?