Are hashed and salted passwords secure against dictionary attacks?
I understand that salts make the same password hash to different values. However, salts are usually stored in the database with the password. So let's say I am attacker, here is how I might use a dictionary attack against a salt (note in this example i don't write out 128 bit hashes or salts for the sake of brevity): user_pw = 'blowfish' Given: email = 'blah@blah.com' hash = '1234567890' salt = '0987654321' function attack(){ for each(word in dictionary) md5( word * salt ) == hash ? cracked_one(email, word) } I understand this prevents hackers from using rainbow tables...but doesn't seem to