MD5 is a 'hash' algorithm with an output length of 128 bits. This means that the infinity of possible byte arrays that you can hash must ALL map on to the 2^128 possible hash values. Now infinity divided by 2^128 is infinity so that there are an infinity of possible messages for each of the 2^128 possible hash values.
When trying to 'decrypt' a hash value, which of the infinity of possible messages is the one you want?
It is not necessary to 'decrypt' a password hash in order to decide if a user has presented a valid password. Just hash the presented password and compare this hash with the stored hash.
Retired horse trader.
Note: double-underline links may be advertisements automatically added by this site and are probably not endorsed by me.