Der MD5 Message-Digest Algorithm ist ein One-Way- Verschlüsselungsalgorithmus oft für die Erstellung geheimen Schlüsseln , die als MD5 -Hashes verwendet werden. Da die Verschlüsselung ist eine Möglichkeit , zwei verschiedene Text-Strings die gleiche MD5-Hash , das heißt, Sie können nicht entschlüsseln. Es sind unendlich viele Möglichkeiten, um die gleichen Hash zu erzeugen. Allerdings haben Hacker Möglichkeiten der Entdeckung der Strings verwendet, um Hashes erstellen , so lohnt es sich, sie mit Sorgfalt zu erstellen. PHP : Hypertext Preprocessor ist eine Programmiersprache, die MD5 und andere Verschlüsselungsalgorithmen unterstützt als gut. Anleitung
1
erstellen Salz Zeichenfolge , die eine unguessable Zeichenfolge für die Verschlüsselung verwendet wird. Das Salz String wird für die Erstellung von Hashes sowie die Bestimmung ihrer Gültigkeit verwendet werden. Ein Weg, um ein gutes Salz Zeichenfolge zu erstellen, ist durch Scrambling eine Reihe von zufälligen Zeichen mit md5 -Funktion von PHP . Der Ausgang der Funktion ist eine 32 -stellige Hexadezimalzahl , so dass Sie mehr als 3,40 x 10 ^ 38 mögliche Kombinationen . Zum Beispiel schließen etwas wie das folgende in Ihrem PHP-Code :
$ salt = md5 ( " 4hJUd5sPP97hT ");
2
Kombinieren Sie den Text mit dem Salz String mit dem Verkettungsoperator , das ist eigentlich eine Zeit , und verschlüsseln Sie sie mit dem md5 -Funktion. Zum Beispiel, wenn Sie verschlüsseln Passwörter , Typ :
$ password = " Us54EEh5R ";
$ verschlüsselte = md5 ( . $ Password $ salt );
"Rainbow Tabellen " sind Datenbanken für das Knacken MD5 -Hashes , von denen der größte zwischen 10 und 20 Milliarden Einträge verwendet haben. Selbst wenn eine Datenbank 100 Milliarden verschiedene MD5 Hashes hatte , das ist weniger als ein in 10 ^ 27 der möglichen Kombinationen . Wenn ein Tropfen Wasser ist etwa 1/10 cm ^ 3 , würde es etwa 1,4 x 10 ^ 25 Tropfen auf die Ozeane der Erde zu füllen. Daher Rainbow-Tabellen beträgt weniger als ein Tropfen auf all die Ozeane der Erde . Wenn Ihr Salz Saite ist gut, es gibt fast keine Chance, die verschlüsselte Hash ist in einer Datenbank. Selbst wenn eine der Datenbanken hatte das gleiche Hash verwendet, die Zeichenfolge zu schaffen , es wäre anders als die in der Datenbank , weil sie nicht verschwenden wertvolle Datenbank-Speicherplatz auf den endlosen Kombinationen von MD5 - Passwörter gesalzen . Diese Datenbanken werden nach viel einfachere Ziele gehen .
3
Überprüfen Hashes wie durch die Schaffung der Hash wie zuvor und der Vergleich mit dem Original erforderlich . Im Falle von Passwörtern , speichern Sie die verschlüsselten Passwörter in einer Datenbank. Wenn jemand um ein Passwort zu verwenden versucht , das Kennwort verschlüsseln mit dem Salz eingegeben , und vergleichen Sie sie mit der Kopie in der Datenbank . Auf diese Weise ist auch der Datenbank-Administrator nicht einem der Passwörter. Geben Sie z. B. :
$ encrypted_entry = md5 ( $ entry $ salt . );
If ($ encrypted_entry == $ verschlüsselt) $ valid = TRUE;
sonst $ valid = FALSE;