[video=youtube_share;8ZtInClXe1Q]http://youtu.be/8ZtInClXe1Q[/video]
UserID | Salt | SaltedHash |
sdbardwick | [random digits] | [hashed (password+salt)] |
UserName | plaintext Password | Salt | Salted Hash | Unsalted Hash |
a | 1234 | ade | 6974841 | 674112 |
b | 1234 | jed | 5797312 | 674112 |
c | 1234 | twb | 4797138 | 674112 |
Yup. Everything is vulnerable to brute-force attacks (well, perhaps until we have quantum-cryptography) but having salted hashes makes it much more difficult to obtain many passwords. You have to attack each salted hash with straight-up brute force without the benefits of shortcuts like gigantic arrays of precomputed hashes. Password strength is still very important, but that can be enforced by policy when setting up an account.Given that it's in the database with the hash, that seems to only address two or more people that have the same password not showing the same hash value in the database, right? If someone breaks in and harvests the database, they have the salt value to still try and use it to do things like dictionary brute-force.
Not everyone wants to trust Google, Microsoft or Facebook.