MD5 zurückumwandeln...GEHT DAS?

chelzyfire

Mitglied
Hi Leuz!
Besteht irgendwie die möglichkeit einen md5 code wieder in eine normale zeichenfolge umzuwandeln?

Zum Beispiel:

Code:
 098f6bcd4621d373cade4e832627b4f6

wieder in

Code:
test

per php-code zu machen.
 
MD5 generiert einen HASH, das - einfach ausgedrückt - so etwas wie eine mathematische »Quersumme« aus bestimmten Algorithmen. Darin befindet sich NICHT das Verschlüsselte.
 
Klar geht das mit Bruteforce und ner Rainbowtable. Nur brauchste zirka 1,2 gig um ne tabelle anzulegen, die max 7 lange "wörter" knacken kann mit nem zeichensatz von 68 zeichen. 68 zeichen = a-zA-Z0-9öäüÖÄÜ
 
Es geht auf jedenfall, die Frage ist was du wieder zurück verwandeln willst.

1. Groß- und Kleinschreibung
2. Sonderzeichen
3. Wieviele Zeichen

etc.

Ab 5 Zeichen wird es langsam schwierig, wenn du dann noch Sonderzeichen drin hast, dann kann das dauern.
 
Aber selbst dann ist die Rückverwandlung nicht eindeutig, sondern nur eine von mehreren Möglichkeiten. Du kannst z.B. die Bibel md5-verschlüsseln und das könnte den gleichen Hashwert wie "hallo" haben, mit Brute-Force bekommst du vielleicht "hallo" raus, aber nicht den Text der Bibel - du könntest also nur einen String finden, der den gleichen Hashwert hat, wie der Hashwert, den du hast. Ob die Strings gleich sind, kannst du nicht feststellen.
 
@Timbonet ;-) wenn interresiert den ob der Hash für das gleiche Wort steht?
nebenbei ist die Kollisionsgröße sehr gering(Also die Chance, dass Hallo ein Wort hat was den gleichen Hash hat aber auch so kurz is.
 
Und sooo viele Möglichkeiten gibt es da auch nicht. Da der Hashwert ein String aus 16 Zeichen mit 32 Zeichen Länge ist, ist die Anzahl der Möglichkeiten 16^32. Wenn du jetzt [0-9a-zA-Z] als mögliche Zielzeichen nimmst, bekommst du:
32^16 = 52^x mit x als Länge des Strings der Kombinationen, die die gleiche Anzahl der möglichen Kombinationen wie der Hashwert hat. Mit etwas Schulmathematik kommt man dann darauf, daß x ungefähr 22,5 ist, du kannst also mit einem 23 Zeichen langen String aus Zahlen, Klein- und Großbuchstaben alle Hashwerte erzeugen unter der Prämisse, daß jeder String einen anderen Hashwert ergibt..
 
Zurück