⊗ppPmAuRHS 424 of 447 menu

Hinzufügen von Salt zur Registrierung

Sie wissen also bereits, dass Hashing via md5 - ein irreversibler Prozess ist und ein Hacker, der Zugriff auf den Hash erhält, nicht in der Lage sein wird, aus diesem Hash das Passwort zu erhalten.

Eigentlich ist diese Aussage nicht ganz richtig - heutzutage haben böswillige Hacker Bibliotheken mit Hashes beliebter und weniger beliebter Passwörter erstellt und jeder Dummkopf kann ein Passwort knacken, einfach indem er seinen Hash googelt.

Dies betrifft ausreichend einfache, beliebte Passwörter.

Googeln Sie zum Beispiel den Hash 827ccb0eea8a706c4c34a16891f84e7b und Sie werden sofort in der Google-Suche sehen, dass es sich um das Passwort '12345' handelt.

Hashes von ausreichend komplexen Passwörtern kann man auf diese Weise nicht knacken (versuchen Sie es).

Sie könnten fragen, wo dann das Problem liegt - lassen Sie uns alle mit komplexen Passwörtern registrieren. Es gibt jedoch ein Problem - die meisten Benutzer machen sich keine Gedanken über die Sicherheit ihrer Daten und können ausreichend einfache Passwörter eingeben.

Wir könnten bei der Registrierung vorschreiben, dass längere Passwörter gewählt werden müssen, indem wir zum Beispiel die Mindestzeichenzahl auf 6 oder 8 beschränken. Dennoch werden Passwörter wie '123456' oder '12345678' auftauchen.

Man könnte natürlich einen intelligenteren Algorithmus zur Überprüfung der Passwortkomplexität entwickeln, aber es gibt eine andere Lösung.

Der Kern dieser Lösung ist: Passwörter müssen gesalzen werden. Salt (Salz) ist ein spezieller zufälliger String, der beim Registrieren zum Passwort hinzugefügt wird und der Hash wird dann nicht vom einfachen Passworttyp berechnet, sondern vom String Salt+Passwort, also vom gesalzenen Passwort.

Das bedeutet, dass Sie bei der Registrierung etwas wie folgt tun werden:

<?php $salt = '1sJg3hfdf'; // Salt - komplexer zufälliger String $password = md5($salt . $_POST['password']); // Passwort in gesalzenen Hash umwandeln ?>

Dabei wird das Salt für jeden Benutzer unterschiedlich sein. Es muss zufällig zum Zeitpunkt der Registrierung generiert werden.

Hier ist eine fertige Funktion, die dies erledigt:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // Länge des Salts for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // Symbol aus der ASCII-Tabelle } return $salt; } ?>

Mit dieser Funktion können wir unseren Code wie folgt umschreiben:

<?php $salt = generateSalt(); // Salt $password = md5($salt . $_POST['password']); // gesalzenes Passwort ?>

Ich wiederhole noch einmal, dass dies Änderungen bei der Registrierung waren - in der Datenbank speichern wir nicht einfach den Hash des Passworts, sondern den Hash des gesalzenen Passworts.

Das ist noch nicht alles: In der Tabelle mit den Benutzern müssen neben den Feldern login und password noch ein Feld salt angelegt werden, in dem wir das Salt jedes Benutzers speichern.

Implementieren Sie die oben beschriebene Registrierung mit gesalzenem Passwort.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen