Sigh... Read about Rainbow tables as mentioned above..

What rainbow tables do, in a nutshell, is take a list of passwords (all the possible variations) and calculate the hashes from that.. It now has a list of all possible hashes, it then compares those with the hashes found on a system. The speed improvement is in the fact you can pre-calculate all the possible hashes, store them and reuse it.