Kurze Antwort: MD5 ist ein Weg, um über ein Kennwort genug zu wissen, um es zu vergleichen - einen eindeutigen Fingerabdruck -, ohne das Kennwort tatsächlich beizubehalten.
Längere: MD5 kann an einen Fingerabdruckgenerator gedacht werden. Sie nehmen so viele Bits wie möglich, und das Ende ist 128 Bit. Die MD5-Summe ist für jeden String immer gleich. Es ist jedoch schwer vorherzusagen, was eine MD5-Summe für eine bestimmte Zeichenfolge sein wird. Es kann nicht umgekehrt werden. Sie können das Kennwort nicht aus dem Hash zurückholen, diese Informationen werden verworfen.
Warum MD5? Sie möchten das eigentliche Passwort nicht speichern. Wenn ich in Ihre Datenbank einbrechen kann, bekomme ich die Passwörter. Das ist unsicher.
So kann ich einen Hash speichern. Beim Anmelden erhalte ich md5sum des eingegebenen Passworts und die md5sum in der Datenbank, ob sie übereinstimmen. Selbst wenn Sie den Hash erhalten, können Sie nicht zurückgehen, um das Passwort zu erhalten. Sie haben den Hash, aber theoretisch können Sie das Passwort nicht erhalten.
Dies ist sicherer, aber denken Sie daran, dass das gleiche Passwort immer auf dasselbe MD5 angewendet wird. 'password' wird immer 286755fad04869ca523320acce0dc6a4 sein. Wenn in der Datenbank 286755fad04869ca523320acce0dc6a4 angezeigt wird, weiß ich, dass Ihr Kennwort "Kennwort" lautet. Eine Technik besteht also darin, Ihrem Kennwort etwas "Salz" hinzuzufügen, etwas Einzigartigkeit. Also, sagen Sie mir, mein Salz wird ausgewählt, oh Idunno, '1b24'. Ich füge das zu den MD5-Daten hinzu, was mir c4f8469e00c67d70dfbaa91cdf948fa8 bringt. Wenn ich das Passwort speichere, speichere ich vielleicht 1b24 | c4f8469e00c67d70dfbaa91cdf948fa8. Wenn Sie dann "password" eingeben, sehe ich in der Datenbank, dass ich 1b24 hinzufügen muss, und ich würde die Übereinstimmung erhalten.
MD5 wird dafür eigentlich nicht so oft verwendet. Es gibt neuere (wie SHA1), die die Bits besser herumwirbeln. Manchmal durchlaufen Sie mehrere Runden. Dies erhöht die Sicherheit, da es schwieriger wird, riesige Listen dieser Fingerabdrücke zu erstellen. Die Berechnung dauert zu lange.