Also, ich würde an deiner Stelle kein sha1 verwenden, dass hat ja noch nichtmal nen Salt.
Nimm crypt: (von php.net)
|
Code source
|
1
2
3
4
|
$passwort = crypt('mein_Pwd'); // let the salt be automatically generated
if (crypt($benutzer_eingabe, $passwort) == $passwort) {
echo "Passwort stimmt überein!";
}
|
Das oben ist zum initialen erzeugen des passwortes, das so erzeugte passwort wird in der Datei/Datenbank abgespeichert.
Der dabei erzeugte SALT sorgt dafür, dass auch wenn Zwei Personen das gleiche Passwort haben dies nicht für jeden direkt erkennbar ist (Die Berechnung kompliziert sich).
Es ist somit auch nicht möglich millionen von Passwrötern vorzuberechnen und die dann nurnoch zu vergleichen. (was zwar viele Daten erzeugt aber sehr schnell dann zu knacken ist).
Vergleichen tust du das dann indem du crypt($benutzer_eingabe, $passwort) == $passwort das benutzt. Der SALT wird hierbei aus dem $passwort (aus der db/Datei) geholt und somit sollte der gleiche Schlüssel erzeugt werden. Wird er es nicht war das Passwort falsch.