Noch immer findet man sehr einfache Schutzmechanismen, die mit Klartext-Passwörtern arbeiten, welche im Quellcode der entsprechenden Routinen abgespeichert sind. Jeder, der Zugriff auf diese Routinen hat, kann solche Passwörter problemlos auslesen und dann missbrauchen.

Die Sicherheit bei der Speicherung solcher Passwörter lässt sich mit einem MD5-Hash zwar nicht perfektionieren, aber doch recht deutlich verbessern. Und das lässt sich auch schon recht einfach mit PHP-Bordmitteln realisieren:

<?PHP 
//Eine Zufallszahl zwischen 1000 und 9999 erzeugen 
$zzahl = mt_rand(1000, 9999);
// MD5-Hash aus Zufallszahl und aktueller Zeit bilden
$zahlzeit = md5($zzahl.microtime());
$passwort = substr($zahlzeit, "0" ,"8");  
//Die Zahl 8 definiert dabei die Länge des Passworts
echo $passwort;?>

Dieser Codeschnipsel erzeugt ein 8-stelliges (maximal 32-stelliges) Passwort aus Buchstaben und Zahlen.

Man muss hier darauf hinweisen, dass sich nicht alle Anforderungen an ein sicheres Passwort mit MD5 erfüllen lassen. Es ist zum Beispiel lange bekannt, dass voneinander verschiedene Zeichenfolgen durchaus denselben Hashwert liefern könnten.

Ein MD5-Hash ist aber schon deutlich sicherer als die Speicherung eines Passwortes innerhalb der Routine im Klartext!