Cracking a Password Hash
Cracking hashes can be done in two ways. But, just in case you din't know, I'll cover the basics of hashes.
The problem with cracking a hash is that they are one-way - that is, once you've encrypted your text, there is no way to decrypt the hash and get the plaintext back. I found this confusing at first, but it does make sense.
So, you cannot decrypt a hash. So you have to crack it.
Like I said, there are two ways to do this - dictionary attack and brute forcing.
A dictionary attack takes a wordlist, which can often be of a very large size. It then encrypts each of these words, and checks them against the hash. If the hashes match, voila! Cracked!
However, the hash may not be of an actual word. This is where brute-forcing comes in. Brute forcing starts by taking a single character, encrypting it, and checking the hash. If it does not match, it goes to the next character. It keeps doing this, changing and adding more characters, until it finds a match.
Obviously, dictionary is the quickest way, but sometimes brute-forcing is unavoidable. A great way to understand is to code your own cracking program, but if you can't do that, simply download John the Ripper or Cain and Abel. Both great cracking programs.
I hope this cleared it up for you.
There are many types of hash, and the 3 most common ones (arguably) are md5, SHA and DES. Look 'em up with google's define: function.
As for salts, and more on cracking hashes, check this page out. http://en.wikipedia.org/wiki/Salt_(cryptography)