Womit kodieren? Ganz einfach. Nimmst du dir die Funktion md5, oder die Funktion sha1: (ist eigentlich egal, obwohl SHA1 etwas sicherer sein sollte)
Definiert sind die als folgendes:
Code:
string md5 ( string str )
string sha1 ( string str )
Nun speicherst du bei der Anmeldung das gehashte Passwort des Typen so in der Datenbank:
Code:
$passwd = sha1($_POST['passwort']);
wo $passwd das gehashte Passwort ist und $_POST['passwort'] das eingegebene Klartext Passwort.
Wie du dann die Variable in deine
DB packst, weißt du wahrscheinlich besser als ich ...
Wie du das dann vergleichst? Ganz einfach:
Beim Login machst du das gleiche:
Code:
$eingegebenes_passwd = sha1($_POST['passwort']);
if ($passwd_aus_datenbank == $eingegebenes_passwd)
{
print("Herzlichen Glückwunsch, du bist der Chef.");
}
Wenn bei dir für zwei verschiedene Aufrüfe der md5() oder der sha1() Funktion was verschiedenes für den gleichen String rauskommt, ist DEFINITIV was kaputt bei dir, oder du machst was falsch ...
Du kannst auch die crypt() Funktion benutzen, welche jetzt bei PHP am sichersten ist, weiß ich nicht. Ich tippe mal auf crypt() mit MD5 oder Blowfish als Algorithmus, aber der muss wiederum nicht auf jedem System verfügbar sein. Krank.
(Edit: Die crypt() Funktion würde ich dir für den Anfang nicht empfehlen - da kommt wirklich immer was anderes raus, auch bei gleichen Strings. Liegt an der Funktionsweise: Um das sicherer zu machen, wird noch ein Zufallswert mit verschlüsselt. Den müsstest du auch irgendwie in der
DB speichern und dann beim checken wieder auslesen. Nimm einfach md5() und alle sind glücklich.
)
Philipp