Passwort - Hash?

6 Antworten

Naja, sagen wir mal ein Nutzer registriert sich bei deiner Webseite mit

Nutzername: HansGans

Passwort: geheim

Dann hashst du das Passwort mit z.B. mit md5 (recht unsicher).-

Aus geheim wird dann e8636ea013e682faf61f56ce1cb1ab5c.

Nun schreibst du also einen neuen Eintrag für den Nutzer in deine Datenbank

z.B.

Bild zum Beitrag

Bei einem erneuten Einlogvorgang mit dem Nutzernamen HansGans

schaust du dann in der Tabelle nach, welchen Hash du gespeichert hast und vergleichst diesen mit dem Hash vom Passwort welches gerade benutzt wird beim Einlogveruch. Gibt der Nutzer ein falsches Passwort ein, wird der Hash nicht zum gespeicherten passen. Passt alles loggst du den Nutzer normal ein.

Großer Vorteil den Hash anstatt das Passwort direkt zu speichern ist, dass wenn Hacker die Datenbank hacken sie nicht gleich die Passwörter, sondern nur die Hashes kennen. Und da man vom Hash ja nicht auf das Original zurück kommt, ist das schonmal viel sicherer. Die Hacker müssten also nun z.B. durch ausprobieren den Hash knacken. Weiß man also z.B. das das Passwort nur 3 Buchstaben lang ist könnte man nun AAA, und dann AAB, AAC usw. hashen und mit dem erbeutetem Hash vergleichen, bis man den selben wert bekommt. Das kann dann unter Umständen Tausende von Jahren dauern (ein langsamer Hashalgorithmus und ein gutes Passwort vorrausgesetzt).

Woher ich das weiß:Studium / Ausbildung – Informatikstudent
 - (Computer, Technik, programmieren)

Weil du nur Hashwerte vergleichst. Somit ist die Datenbank sicherer, das Passwort abzufangen ist schwieriger, evtl geht es auch schneller, Hashwerte zu vergleichen, als Passwörter mit der Datenbank abzugleichen

Von Experten whgoffline und Palladin007 bestätigt

Du kannst diesen Hash mit dem Hash eines anderen Passwortes vergleichen, und so herausfinden ob sie identisch sind.

Ein Beispiel: Wenn du dich irgendwo registrierst und ein Passwort festlegst wird der Hash dieses Passwortes gespeichert (in der Praxis passiert noch bisschen mehr, aber das vernachlässigen wir hier mal). Wenn irgendein Mitarbeiter oder Hacker oder sonst irgendwer an die Daten auf dem Server kommt, sieht er nur den Hash, aus dem dein Passwort nicht rekonstruierbar ist. Aber wenn du dich anmelden willst, gibst du dein Passwort ein. Es wird der Hashwert von deinem eingegebenen Passwort berechnet und mit dem hinterlegten Hashwert verglichen. Stimmen beide überein, ist das eingegebene Passwort garantiert das zuvor festgelegte. Und um das festzustellen, braucht der Server dein Passwort im Klartext gar nicht zu speichern...

Das ist nur eine mögliche Anwendung von Hashfunktionen, aber grundsätzlich sind sie fast immer dazu da um die Echtheit von irgendetwas zu überprüfen ohne dass man es selbst kennt...

Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren

Hey,

der Sinn ist, dass man Passwörter so sehr sicher speichern kann und sie bei bspw. einem Login dennoch auf Gleichheit überprüfen kann.

Mfg Jannick (L1nd)

Woher ich das weiß:Hobby

Genau das, der Hashwert kann mit ausgehandelten Verfahren nur mit dem richtigen PW erzeugt sein, das Passwort selbst verlässt den Eigentümer aber nicht.