- PHP 5 mit aktivierter mcrypt Extension
- Zugang zur MySQL Datenbank
- Zugang zu den PHP Dateien
Für eine Kundin habe ich EasyHP aufgesetzt und dabei ist mir aufgefallen, dass die Passwörter relativ unsicher in der DB abgespeichert werden.
Also habe ich mich drangesetzt und das Passwort Hashing Verfahren von salted MD5 auf salted PBKDF2 SHA256 geändert.
Dafür habe ich diese PHP Klasse benutzt.
Leider ist es nicht möglich, die bestehenden Passwort Hashes von MD5 zu SHA256 zu konvertieren.
Es ist dennoch nicht nötig irgendwelche Passwörter manuell neu zu setzen oder die User zu informieren, sie mögen ihr Passwort ändern.
Ich habe dafür ein neues Datenbankfeld (password_hash) in der User Tabelle angelegt. Beim Login wird jetzt geprüft, ob der Hash bereits durch das neue Verfahren erzeugt wurde oder ob es sich noch um einen alten MD5 Hash handelt. Handelt es sich noch um einen MD5 Hash wird bei erfolgreicher authentifizierung das Passwort mit dem neuen Verfahren gehashed, in der Datenbank abgespeichert und das Feld "password_hash" aktualisiert. So werden nach und nach alle alten, MD5 Passwörter auf SHA256 aktualisiert.
Ich hoffe dem einen oder anderen gefällt meine Erweiterung.
Und bitte seht es mir nach, wenn sich doch noch irgendwo Fehler eingeschlichen haben, es ist meine erste Erweiterung

Gruss
trillian2002