I don't think people realize that MD5 and SHA are NOT encryption methods. They're methods for producing statistically unique signatures, or abbreviations of data. Going backwards is IMPOSSIBLE. If it were possible, you'd have an amazing compression technology that could take an ARBITRARY length of data and compress it down to a FIXED length of data.
Because it reduces the amount of data, it is theoretically possible for two diffent inputs to yield the same output. The algorithm simply makes this very, VERY unlikely.