Simlau.net
Tutorials > PHP > MD5 mit Salz

Was bedeutet MD5?

MD5 (Message-Digest Algorithm 5) ist eine weit verbreitete kryptographische Hash-Funktion, die einen 128-Bit-Hashwert erzeugt. MD5 wurde 1991 von Ronald L. Rivest entwickelt. Die errechneten MD5-Summen (kurz md5sum) werden zum Beispiel zur Integritätsprüfung von Dateien eingesetzt. (Quelle: Wikipedia.org)

Wozu sollte zusätzlich salzen?

Unter salzen (bzw. salt) versteht man das einhashen von weiteren Zeichenkombinationen in den Passworthash, der dann zur Überprüfung herangezogen wird. Salten empfiehlt sich generell, um auch kurze Passwörter sicher vor Rainbow Table Datenbanken und Bruteforce Angriffen zu machen.

Wie soll das funktionieren?

Das ganze lässt sich sogar relativ simpel realisieren:

<?php

$hash = md5(md5($passwort.'salt'));

// oder auch mit dem Usernamen...

$hash = md5(md5($passwort).$username);

?>

Eine Überprüfung müsste dementsprechend so aussehen:

<?php

if (md5(md5($_POST['pass'].'salt')) == $pass_hash) return;

if (md5(md5($_POST['pass']).$username) == $pass_hash) return;

?>

Natürlich bietet auch dies keine 100%ige Sicherheit, aber es ist in jedem Fall sicherer als das Passwort im Klartext zu hashen. Wenn keiner die eigene Verschlüsselungsmethode kennt, wird das ganze natürlich um so sicherer. Ist sie allerdings bekannt, ist das ganze auch leicht wieder rückgängig zu machen.