PHP md5 () gibt eine andere Ausgabe als MySQL md5

8

Ich versuche ein Login-System einzurichten, aber ich kann ein Problem nicht lösen: PHP gibt mir eine andere Ausgabe mit md5 (); als MySQL ...

Zum Beispiel in PHP:

%Vor%

Rückkehr:

%Vor%

Aber das MySQL-Äquivalent gibt mir eine kürzere Version:

%Vor%

Was ist das Problem? Und wie arbeite ich damit, während ich Passwörter überprüfe?

    
Jers 18.07.2012, 11:53
quelle

4 Antworten

8

Ich vermute das Problem in der Länge der Spalte Ihrer Tabelle, legen Sie die Länge des Passwortfeldes auf mindestens 32

    
haynar 18.07.2012, 11:55
quelle
2

Auf keinen Fall gibt MySQL es mit einer Länge von & lt; 32. Wenn Sie eine einfache Abfrage wie SELECT md5('brickmasterj') ausführen würden, würden Sie sehen. Jetzt fügen Sie höchstwahrscheinlich den Wert in eine Spalte ein, die nicht breit genug ist.

    
Andrius Naruševičius 18.07.2012 11:56
quelle
2

Ist Ihr Datenbankfeld 32 Zeichen lang? Schreibst du mit mysqls md5 in die Datenbank?

    
kinaesthesia 18.07.2012 11:57
quelle
0

Die Hash-Größe ist immer fix. In Ihrem Fall beträgt die Hash-Größe 128 Bit. Bei der Umwandlung in eine ASCII-Zeichenfolge wäre dies eine Zeichenfolge mit 32 Zeichen, die nur Hexadezimalziffern enthält. Wenn Sie also ein variables Zeichen speichern, sollte die Länge mindestens 32 betragen Beispiel: password varchar(32) sollte in mysql Tabelle gehen, dann können Sie mit php mit aufrufen select password from table where password =md5($password);

    
user3470929 04.09.2015 06:51
quelle

Tags und Links