Sven Rautenberg: php crypt

Beitrag lesen

Moin!

Ich hatte das erst mit htacces usw. gelöst, mit verschlüsselten (crypt)  Paswörtern.
Jetzt würde ich aber gerne auf Sessions umsteigen, und frage mich, wie ich die Passwörter, die beim Login übergeben werden, mit den verschlüsselten Passwörtern aus der DB auf Gleichheit überprüfen kann.
Wenn ich den selben String zweimal crypt verschlüssele, kommen ja zwei unterschiedliche Strings raus.

crypt() ist nicht wirklich eine ideale Lösung. Es ist systemabhängig, welcher Mechanismus dadurch zum Einsatz kommt, dein System wäre also nicht beliebig portabel, und der standardmäßige Mechanismus erlaubt nur Passworte mit 8 Zeichen Länge - das ist durch heutige Computer durchaus knackbar.

Das "Salz" des jeweiligen Crypt-Vorgangs steckt übrigens in den ersten Zeichen des Crypt-Resultats, und die übliche Vorgehensweise ist, zur Herstellung des neuen Crypt-Wertes einfach das Klartextpasswort und den gespeicherten Crypt-Wert der Funktion zu übergeben.

Bräuchte also einen Tipp, wie ich das Serververhalten bei htaccess-Lösung in PHP nachahmen kann.

Der wichtigste Tipp wäre, von crypt wegzugehen. MD5 oder SHA1 sind schönere Alternativen, die durch Hinzufügen einer Salz-Komponente noch viel schöner werden.

- Sven Rautenberg

--
"Love your nation - respect the others."