And, if it was salted, you may not be able to find the “original” plaintext.
That is, if my password is “piano”, the md5 sum would be
d113f1c3f9ed8019288f4e8ddecfb8ec
However, if the password program is at all intelligent, they have salted their sums. For instance, if the salt is… well… “salt”, then the md5 sum for my password would be (“pianosalt”):
78320642b48d01334ac06bf4f19a934a
Now, let’s pretend that the word saltwatertaffey also has the md5 sum 783…934a (it doesn’t, but for the sake of argument)
So, the problem is now that if I crack the second string by some method that finds the collision saltwatertaffey, I don’t have a valid password. Only if I find a collision that ends in the word “salt” or the original plaintext (ending in the word “salt”) have I found the actual password.
A much easier way to crack the password is to figure out what the salt it—typically based on each program’s implementation, and then run a dictionary attack against the md5 table.
And, while you’re waiting, call random people and ask them what their passwords are.