Ich benutze die Extensions:
- kb_md5fepw
- newloginbox
Ich muss dort Benutzerdaten aus einer anderen Datenbank importieren. Die Entwickler der alten Datenbank haben Umlaute in Benutzernamen und Passwörtern zugelassen.
Mittlerweile funktioniert kb_md5fepw mit ein paar kleinen Anpassungen so, dass Umlaute kein Problem mehr darstellen wenn ich einen Benutzer im Backend anlege und mich dann im Frontend einlogge.
Das Problem:
Die Passwörter aus der alten Datenbank sin unverschlüsselt gespeichert, wenn ich sie nun importiere (mit md5() bzw. md5(utf8_encode())) dann ist der MD5-Hash anders als der den Typo3 erzeugt.
Beispiel: "mühe"
php bzw. mysql erzeugen: e12df049fe60380d108913da369cbb6b
Typo3 erzeugt: b31c9153cd317eb4f6d595629b3c6d8d
Ich bin für jede Hilfe dankbar, habe auch nach langem Suchen noch nicht mal die Funktion gefunden mit der Typo3 das Passwort abspeichert.
Typo3 benutzt md5 (welch Wunder 🙂 )
Wenn das nicht übereinstimmt dann ev. nur wegen utf8. Sollte aber keine Rolle spielen, da wenn Du mit md5 speicherst die Kontrolle beim login genauso gemacht wird.
Danke für die schnelle Antwort.
Das stimmt, das habe ich ja schon festgestellt - wenn ich die Benutzer im System anlege dann funktioniert es.
Wenn ich sie aber per MySQL importiere dann kommt ein anderes Ergebnis heraus. Ob ich vorher utf8_encode, utf8_decode oder gar nichts anwende - die Ergebnisse unterscheiden sich.
das tut mich wundern, denn md5 ist eigentlich immer gleich ...
was ist wenn Dein importscript auf dem selben server läuft? (gleiche php-version, gleiche Kodierung)
Das Script läuft auf dem gleichen Server. Wenn keine Umlaute im Passwort sind, dann ist das Ergebnis identisch.
Was kann ich denn noch machen außer utf8_encode?
Was macht Typo3 vorher mit dem Passwort - muss ich es noch irgendwie anders konvertieren? Oder ersetzt Typo3 irgendwelche Umlaute?
Welche Klasse ist denn für das Speichern zuständig?
Ist fe_adminLib.inc schon die richtige Richtung?