Früher hat ein MD5 ja gereicht zum Passwort verschlüsseln.
Ein Streuwert/Hash ist keine Verschlüsselung :)
Heute gelingt aufgrund der Rechenleistung und Rainbowtabelles das Rekonstruieren eines verschlüsselten Passwortes recht einfach, so dass man am Ende per Klartext das Passwort (oder ein Synonym) sehen und verwenden kann.
Das hat weniger mit Rechenleistung zu tun sondern eher mit der Tatsache, dass viele Benutzer ein dummes Passwort wählen :)
Als Lösung wird ein mehrfaches Verschlüsseln per MD5 vorgestellt. In PHP gibt es dazu z.B. die Funktion bcrypt(). Beim verschlüsseln des Passwortes kostet das pro Aufruf ein paar Milisekunden, soll später bei einem Angriff die Zeit des Rekonstruierens sehr hochtreiben.
Ja - und zwar signifikant.
Der Angreifer weiß nicht dass der MD5 umgedreht wurde und versucht den umgedrehten md5 zu entschlüsseln. Selbst wenn ihm das gelingt bekommt er nicht das richtige Passwort raus.
Security by Obscurity funktioniert nicht, das sagte molily bereits :)
Weil es für dich als Mensch ggf. "schwer nachzuvollziehen" ist, muss das für einen Computer nicht zutreffen.
http://xkcd.com/936/
http://suit.rebell.at/artikel/passwoerter-richtig-und-sicher-speichern