Dennis: MD5 Verschlüsselung und mysql

Beitrag lesen

Hi Michael,

Wird bei der Verwendung einer md5 Verschlüsselung ein Passwort von verschiedenen Anwendungen gleich erzeugt und somit das Gleiche in eine Datenbank geschrieben?

Spontan würde ich sagen: Nein - es gibt allerdings verschiedene Möglichkeiten den erhaltenen Wert darzustellen! Die PHP Funktion md5() (Achtung, deutsches Manual ist hier mal wieder veraltet) gibt den erhaltenen Wert standardmäßig als eine hexadezimale Zahl aus, welche 32 Zeichen lang ist. Alternativ kann man den Wert auch noch im unbearbeiteten Binär-Format ausgeben lassen - der dann 16 Zeichen lange String kann allerdings nicht darstellbare Zeichen enthalten, weshalb auch PHP standardmäßig die Ausgabe als hexadezimale Zahl verwendet.

Die siehst also, dass gleiche Ergebnis kann unterschiedlich dargestellt werden. Ab PHP5 kannst du über einen zweiten, optionalen Parameter von md5 das Ausgabe-Format kontrollieren:

$hexadez_hash = md5($string);  
$binary_hash = md5($string, true);

Will man die Ausgabe im Binär-Format in einer PHP-Version kleiner 5 haben, so gibt es einen Trick, wie in Userkommentar zeigt:
$binary_hash = pack('H*', md5($string));

Lass dir also den Wert mal in beiden Ausgabe-Formaten anzeigen und vergleiche ihn dann nochmal mit den Werten, die dir andere Programmiersprachen ermitteln. Unabhängig davon, kann es natürlich auch (noch zusätzlich) sein, dass ein Salt-String verwendet wird.

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Die FlatBox 0.3 mit Dokumentation ist da!
Man sollte nie aufhören zu fragen (Albert Einstein)
... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P