Miky: PHP/Perl - crypt()

Beitrag lesen

Hallo Miky,

Willkommen in der Welt der Einweg-Verschlüsselungen! crypt()-Passwörter kannst Du höchstens durch probieren herausbekommen, und das dauert.

Ist klar. Ich will ja auch nich wirklich das Passwort wissen, sondern bei Eingabe des Passwortes nur den gleichen Schlüssel mit PHP erzeugen, der auch schon mit Perl erzeugt wurde (konkret: man soll in Zukunft mit PHP-crypt-Passwort an seine alten Daten, gesichert per Perl-crypt-Passwort noch rankommen können)

Oder gibt´s da ne ganz andere, möglicherweise viel elegantere Methode, die ich noch nich kenne?

Wenn ein Passwort mit crypt() verschlüsselt vorliegt, dann kannst Du das Passwort, das Du vom Benutzer zur Authentifizierung bekommen hast, mit dem gleichen Salt verschlüsseln. Wenn das Ergebnis der Verschlüsselung das gleiche ist, wie das verschlüsselte Passwort, dann hat der Benutzer das Passwort richtig eingeben.

Logisch.

Weiterer Vorschlag: Zur Verschlüsselung würde ich md5() und nicht crypt() verwenden (crypt ist relativ alt), daher wäre folgende Übergangslösung ideal:

Wenn das verschlüsselte Passwort nicht 32 Zeichen hat, dann ist es kein MD5-Hash und daher muss mit crypt überprüft werden.
Wenn das verschlüsselte Passwort genau 32 Zeichen hat, dann ist es ein MD5-Hash und daher muss mit md5 überprüft werden.

Du müsstest halt das verschlüsselte Passwort aus der DB holen und dann erst die Länge prüfen. (oder einen komplizierten Select, je nachdem, was Dir lieber ist)

Bei Ändern des Passworts durch den Benutzer speicherst Du das neue dann per MD5 und so werden alle Passwörter nach und nach mit MD5 verschlüsselt.

Jau, MD5 rult, als Übergangslösung sicherlich denkbar...

Grüße,

Christian