Warum PHP md5 unterscheidet sich von OpenSSL md5?

7

Ich bin ziemlich verwirrt, warum ich verschiedene Ergebnisse für md5-Hashing in PHP und in OpenSSL sehe.

Hier ist der Code, den ich verwende:

%Vor%

Ergebnisse in: 900150983cd24fb0d6963f7d28e17f72

Währenddessen:

%Vor%

Ergebnisse in: 0bee89b07a248e27c83fc3d5951213c1

Warum?

    
Alex N. 02.07.2010, 23:05
quelle

4 Antworten

21

Es gibt nur eine Möglichkeit, MD5 zu berechnen.

Eine blinde Vermutung ist, dass der zweite auch einen Zeilenumbruch innerhalb der zu hashenden Zeichenfolge enthält.

Ja, verifizierte es. Das war's.

    
jdehaan 02.07.2010, 23:07
quelle
8

Wie bereits erwähnt, besteht das Problem darin, dass echo einen zusätzlichen Zeilenumbruch druckt.

Die vorgeschlagene Lösung ( echo -n ) ist jedoch nicht vollständig korrekt. Nach dem POSIX-Standard sollten " Implementierungen keine Optionen unterstützen. " Sie werden den Welt ein bisschen besser, wenn Sie es nicht benutzen. Verwenden Sie

%Vor%

oder einfach

%Vor%     
Roman Cheplyaka 03.07.2010 01:20
quelle
6

echo fügt normalerweise am Ende der ausgegebenen Zeichenfolge ein neues Zeilenzeichen hinzu. Aus diesem Grund sind die MD5-Werte unterschiedlich.

Versuchen Sie es mit echo -n abc | openssl md5 .

    
kiamlaluno 02.07.2010 23:10
quelle
1

Wenn Sie, wie Jdehaan sagt, echo nicht einen Zeilenumbruch ausgeben lassen, erhalten Sie die Antwort, die Sie erwarten

%Vor%     
Paul Dixon 02.07.2010 23:12
quelle

Tags und Links