Einzelnen Beitrag anzeigen

Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#10

AW: Salz und Hash in Datenbank speichern?

  Alt 9. Okt 2013, 15:02
@Phoenix: Soll heissen ich erzeuge einen eindeutigen Schlüssel z.B. eine GUID:

Username: Max Mustermann
Passwort: 12345
GUID: {D365FA88-8442-40B3-82DC-E8D0E0EB0594}

DB Passwort: 12345 + {D365FA88-8442-40B3-82DC-E8D0E0EB0594} = MD5 Hash = dc8dcfc9fd656dca9365b4f7b5fe98f9

Und sichere in der DB das 'neue' Passwort + die GUID:

Username: Max Mustermann
Passwort: dc8dcfc9fd656dca9365b4f7b5fe98f9
GUID: {D365FA88-8442-40B3-82DC-E8D0E0EB0594}
richtig.

Username: völlig egal!
Passwort: 12345 < Das wird NICHT gespeichert!
Random Salt: 54a4sd88asdasg54rwer7423
Hash: 62e83e4b82f0513deca5f0645f02804f < Das wird gespeichert!

Aus Sicht der Anwendung sieht das dann so aus:
1. Benutzer gibt Username und Passwort ein
2. Programm holt sich den Salt für den Benutzer aus der Datenbank
3. Programm generiert einen MD5-(oder was auch immer)-Hash mittels Passwort + Salt (im oberen Fall also 1234554a4sd88asdasg54rwer7423 = 62e83e4b82f0513deca5f0645f02804f)
4. Programm (oder Datenbank) prüft, ob der generierte Hash mit dem Hash aus der Datenbank übereinstimmt

Will man das System noch verbessern, kann man das Passwort mehrmals salzen (z.B. Salt + Password + md5(Salt))
  Mit Zitat antworten Zitat