php md5 Algorithmus, der das gleiche Ergebnis wie c # ergibt

7

Ich habe einen Hash-Algorithmus in C #, kurz gesagt:

%Vor%

Jetzt muss ich dieses Verhalten in PHP replizieren,

%Vor%

Wie kann ich es erreichen?

Ich habe

überprüft
  • md5
  • utf8_decode
  • utf8_encode
  • base64_encode
  • base64_decode
  • url_decode

aber ich bemerkte, dass der PHP-md5 nicht das == am Ende bekommt ... was fehlt mir?

HINWEIS : Ich kann das Verhalten von C # nicht ändern, da es bereits implementiert ist und Passwörter in meiner Datenbank mit diesem Algorithmus gespeichert werden.

    
Jhonny D. Cano -Leftware- 04.05.2009, 20:14
quelle

6 Antworten

19

Das Problem ist PHP md5() Funktion liefert standardmäßig die Hexvariation des Hash, wobei C # die rohe Byte-Ausgabe zurückgibt, die dann mit base64-Codierung textsicher gemacht werden muss. Wenn Sie PHP5 ausführen, können Sie base64_encode(md5('asd', true)) verwenden. Beachten Sie, dass der zweite Parameter für md5() wahr ist, wodurch md5() anstelle der Hex die rohen Bytes zurückgibt.

    
John Downey 04.05.2009, 20:19
quelle
5

Haben Sie daran gedacht, den md5-Hash in PHP zu kodieren?

$result = base64_encode(md5($password, true));

Der zweite Parameter bewirkt, dass md5 eine unformatierte Ausgabe zurückgibt, die den Funktionen entspricht, die Sie in C # verwenden

    
Factor Mystic 04.05.2009 20:16
quelle
4

Ihr C # -Code nimmt die UTF8-Bytes aus der Zeichenfolge; berechnet md5 und speichert es als base64-codiert. Also solltest du das gleiche in PHP machen, das sollte sein:

%Vor%     
driis 04.05.2009 20:18
quelle
1

sollte wie folgt für php sein

%Vor%     
d3nx 22.03.2012 15:25
quelle
0

Ich hatte das gleiche Problem ... mit nur md5 ($ myvar) funktionierte es. Ich bekomme das gleiche Ergebnis C # und PHP.

    
RRG 09.03.2010 10:04
quelle
-1

Gavin Kendall hat mir geholfen. Ich hoffe, das hilft anderen.

Ссылка

%Vor%     
Kyle 09.02.2012 17:06
quelle

Tags und Links