Md5 Alternative in PHP? [geschlossen]

7

Was ist die beste Alternative zum Md5-Algorithmus für PHP zur Verschlüsselung von Benutzerdaten wie Passwörtern und anderen sicheren Daten, die in MySQL-Datenbanken gespeichert sind?

    
Click Upvote 12.04.2012, 14:06
quelle

6 Antworten

13

SHA512 ist keine schreckliche Wahl. Aber es wird nicht lange dauern, bis es für die meisten Passwörter geknackt wird. Nehmen Sie Jeffs Rat . Verwenden Sie bcrypt oder PBKDF2 . Sie sind resistent gegen EC2 oder andere parallele Verarbeitungstechniken. Wahrscheinlich nicht immun, aber resistent.

Der Grund, dass ein besserer Hash in diesem Fall nicht besser ist, ist ABC in MD5 wird zu einem Wert und ABC in SHA512 wird zu einem Wert. Die Berechnung aller 3-Buchstaben-Passwörter ist für SHA512 tatsächlich einfacher als für MD5 . Der Schlüssel ist schwer zu tun. Das bedeutet einen langsamen Hash, einen, der viel RAM verwendet, und / oder einen, der auf EC2 nicht einfach ausgeführt werden kann.

Die beste Wahl ist, KEINE Passwörter mehr zu benutzen. Entscheiden Sie, ob ein Login wirklich für Ihre Site benötigt wird, und wenn dies der Fall ist, versuchen Sie zuerst, einen Drittanbieter zu verwenden. Wenn das keine Option ist, denken Sie an ein Passwort + Token von RSA. Verwenden Sie nur ein Passwort, wenn Sie keine anderen realisierbaren Optionen haben.

Beim Hashing eines Passworts lautet der Schlüssel hash (password + salt) und das Salz muss für jeden Benutzer eindeutig sein und sollte auch schwierig oder unmöglich zu erraten sein. Die Verwendung des Benutzernamens erfüllt die ersten Kriterien und ist besser als kein Salz oder dasselbe Salz für jeden Benutzer, , aber eine eindeutige zufällige Salzmenge für jeden Benutzer ist eine bessere Wahl . Idealerweise in einer separaten Datenbank, wenn nicht in einem Speicherort, mit eigenen Anmeldeinformationen. Es sollte auch nicht auf den Benutzernamen, sondern auf die user_id oder sogar einen Hash der user_id getastet werden. Sie möchten, dass diese Datenbank SQL Injection Proof ist. Es ist ein guter Weg dies zu tun, wenn keine Eingabe vom Benutzer akzeptiert wird, die nicht gehashed ist. Und Sie wären klug, die Abfrage selbst das Hashing durchführen zu lassen. Langsam? Ja, und das ist auch eine gute Sache.

Das Salz selbst sollte alle schwer vorhersehbaren Daten enthalten, die es erhalten kann. Benutzername + User ID + Timestamp + Müll von dev / urandom + der letzte Tweet mit dem Wort Taco drin. Länger desto besser. SHA512 ist hier eine gute Wahl für Hash.

Zusammenfassung: hash = bcrypt (Passwort + Salz), Salz = sha512 (Benutzername + Benutzer-ID + Zeitstempel + Mikrotimestamp + Dev / Urand Bits + anderes Rauschen).

Wenn Sie nach all dem noch immer Sorgen haben. Fühlen Sie sich frei zu SHA512 das verschlüsselte Passwort. Sie werden die Stärke von SHA512 erhalten, die, wenn sie geknackt wird, nur einen wesentlich härteren Brute-Force-verschlüsselten Hash erkennen lässt.

    
DampeS8N 12.04.2012, 14:25
quelle
8

Probieren Sie die Funktion php hash () Ссылка

aus

Beispielcode:

%Vor%

Das macht das:

%Vor%

In:

%Vor%

Weiterführende Literatur: Ссылка

    
CodeTalk 12.04.2012 14:12
quelle
3

MD5 wird in der Tat nicht mehr empfohlen. Die meisten PHP-Installationen enthalten die Erweiterung hash . Die beste Wahl für eine Hash-Funktion wäre derzeit SHA-512. Sie können SHA-512 mit der folgenden Funktion verwenden:

%Vor%

Es gibt andere Alternativen mit kleineren Ausgabegrößen, wie zB SHA-256 oder RIPEMD-160 .

Update: Lesen Sie Ihre aktualisierte Frage, ich empfehle die PHP crypt Funktion.

    
Chris Smith 12.04.2012 14:10
quelle
1

Sie können so Hash verwenden, Sie haben viele Algorithmen, um Ihre Daten zu hashen.

%Vor%     
mamadrood 12.04.2012 14:09
quelle
0

MCrypt bietet viele sicherere Methoden (wie auch md5 selbst, btw).

    
J0HN 12.04.2012 14:08
quelle
-1

Ich empfehle, dass Sie über die Funktion hash nachlesen. Sie könnten auch über Mcrypt lesen. Das ist das beste Hash-Ding für jetzt, denke ich. Mcrypt bietet Hashing basierend auf dem CPU-Zyklus.

    
David Bélanger 12.04.2012 14:08
quelle

Tags und Links