MD5 Hash knacken

Ja das schon, nur haben die Standartmäßig auch nur 32 Zeichen, und nicht 128. Die 40GB waren nur geschätzt, also kein Wert aus einem Bilderbuch.

Du hast von allen Ascii-Chars gesprochen, aber selbst wenn man nur 32 Chars nimmt, kommt man nichtmal ansatzweise in die Nähe von 40GB. Für diesen Bedarf an Speicher gibt es meines Wissens nach noch keine genormte Einheit - und somit gehen die 40GB nichtmal als Schätzung durch, sondern vermitteln komplett falsche Tatsachen ;)
 
MD5 hat 32 stellen und 16 verschiedene Zeichen (Hexadezimal).
Also gibt es bei MD5 32^16 => 1.208.925.819.614.629.174.706.176 mögliche Kombinationen.

Ich glaub nicht das diese ganzen Kombinationen irgendjemand speichern kann. :-?

Die Rechnung ist Falsch. Schlicht einfach falsch daher, da jeder Hash 32 Stellig ist.

Es gibt keinen mit 31 -> 31^16
Es gibt keinen mit 30 -> 30^16
Es gibt keinen mit 29 -> 29^16
Es gibt keinen mit 28 -> 28^16
...
Hier bleiben mindestens 90% Der Kombintaionsmöglichkeiten auf der Strecke!

Das ganze ist davon abzuziehen, und zwar (32^16) - (31^16) - .... ist dem abzuziehen, da keine 31- 30- 29- 28- 27- 26- 25 ... 1- Stellingen Hashes möglich sind. Man weis, dass jeder Hash 32 Stellig ist und bleibt, deshalb ergibt sich ein enormes an Möglichkeiten weniger!

Der Rest was da übrig bleibt, ist schon speicherbar. Wenn auch nicht auf 40GB!

Punkt Nummer 2 ist,
Dass, wenn jeamand diese Anzahl Hashs hat, Kann das PASSWORT 1.000.000.000 Stellig sein. Es sollte doch jedem verständlich sein, dass es nicht mehr Kombinationen gibt. Deshalb werden verschiedene Passwörte den gleichen Hash (Die gleiche Quersumme haben).

Also beim Standard MD5 (32) Er gibt der Hash ja immer ein 32Stellige Folge.
Egal ob mein Passwort aus 10 oder 20 oder 100 Zeichen besteht. Mehr hashes gibt es nicht wie in 32 Bit passen.

Es ist also noch viel schlimmer, was das 32 Bit MD5 angeht!

Um es ganz deutlich zu machen was ich sagen will:
Passwort: HasH:
test -> 098f6bcd4621d373cade4e832627b4f6
ttesttesttesttesttesttesttest -> 4d1f1e21e8d030b31b27ea7dd258a394

Wie man hier sieht, die Passwörter können unterschiedlich lang sein. Der Hash aber hat eine bestimmte Anzahl an Möglichkeiten. Dies beweist, dass verschiedene Passwörter zu ein undem selben Hash gerechnet werden.

Die Anzahlt ist also absolut begerenzt!

So jetzt kann ich nicht sagen 32^16 als Beispiel. Weil es 31^16 nicht gibt und nicht geben wird. Und die Passwortlänge spielt dabei keine Rolle.

Wenn du das Passwort test hats und das Passwort test2 die gleiche Summe ergibt, dann logge ich mich mit test2 auch ein. Das ist so.

Hier geht es um eine SUMME.
Als Beispiel

4+2+1 = Summe 7
2+4+1 = Summe 7 auch

sind aber 2 Passwörter. Ist ein etwas dummes Beispiel, aber es zeigt die Logik die hinter steckt.
 
Zuletzt bearbeitet:
Die Rechnung ist Falsch. Schlicht einfach falsch daher, da jeder Hash 32 Stellig ist.

Es gibt keinen mit 31 -> 31^16
Es gibt keinen mit 30 -> 30^16
Es gibt keinen mit 29 -> 29^16
Es gibt keinen mit 28 -> 28^16
...
Deine Annahme ist falsch. Bei 32 Stellen und 16 möglichen Zeichen gibt es definitiv 32^16 Kombinationen. Da fällt nix weg und kommt nix dazu. Das ist simple Mathematik...

Edit:

Und diese simple Mathematik habe ich in der Tat verbockt. MrToiz hat's richtig geschrieben. Bei 16 verschiedenen Zeichen und 32 Stellen ist es 16^32, nicht andersrum. So wie in ein Byte 2^8 verschiedene Zahlen gespeichert werden können.

War gestern abend vielleicht doch etwas zu spät. ;)


Wer diese riesige Datenmenge an Hashes (+ Klartext) speichern möchte, um daraus eine Lookuptabelle zu bauen, soll dies gerne tun. Es gibt wohl keinen rechtlichen Einwand, der dagegen spricht. Die Frage ist, wie sinnvoll es ist, damit seinen Speicherplatz und Rechner- sowie eigene Zeit zu vergeuden.
Es ist soviel einfacher, den Hashingalgorithmus für das Speichern der Passwörter anzupassen als die Lookuptabelle auf diese Änderungen umzustellen (wenn dieser Schritt nicht sogar unmöglich ist).
 
Zuletzt bearbeitet:
Um das ganze mal hieb und Stichfest zu machen.

Es gibt 10 Zahlen + 25 Buchstaben -> 35 mögliche Zeichen
Ein Hash hat immer 32 Stellen.

somit ergibt sich eine Kombinationsmöglichkeit aus 32 hoch 35.
Da ein Zeichen 8 Bit hat bzw. 1 Byte benötigt man 32 Byte hoch 35 an Speicherplatz.
32 = 32 Byte
32² = 1,024 Kilobyte
32³ = 32,768 Kilobyte
32 hoch 4 = 1.048,576 Kilobyte oder 1,049 Megabyte
32 hoch 5 = 33,55 Megabyte

Wem es auffällt wir müssen die 34 Megabyte noch ganze 30 mal mit 32 multiplizieren. 40 GB werden da schnell zu einer größe, als ob man ein Sandkorn und die Erde miteinander vergleicht.

Und noch eine Bemerkung. Md5 ist und kann nicht geknackt werden. Die Bruto-Force Methode ist kein crack, es ist ein Vergleich!! Wenn ihr euch was zum anziehen aus dem Schrank holt, crackt ihr auch nicht die Klamotten miteinander...
 
Leider auch falsch, T-Rex, ein MD5-Hash hat genau 128 Bit, nicht mehr und nicht weniger. Zur Darstellung wird meist eine 32stellige Hexadezimalzahl (bestehend 0-9 und a-f) genommen.
Darum gibt es 16^32=2^128≈3,4E38 Kombinationen für einen MD5-Hash.
Für jeden Hash muss muss man nun den Ausgangswert (wir nehmen der Einfachheit halber an, dieser habe auch 128 Bit) und den Hash speichern (nochmal 128 Bit), also 256 Bit, den Speicheroverhead vernachlässigen wir mal.
Sind dann also 32 Byte*3,4E38 Kombinationen≈1,1E40 Byte≈9,9E27 TB.
Angenommen, eine Festplatte mit einer Kapazität von einem TB wiegt ein halbes Kilo. Der Computer, der deine Hash-Tabelle speichert, würde dann 5,0E24 Tonnen wiegen, hätte also ungefähr das tausendfache der Erdmasse!

Viel Spaß weiterhin,
MrToiz
 
Darum gibt es 16^32=2^128≈3,4E38 Kombinationen für einen MD5-Hash.
Für jeden Hash muss muss man nun den Ausgangswert (wir nehmen der Einfachheit halber an, dieser habe auch 128 Bit) und den Hash speichern (nochmal 128 Bit), also 256 Bit, den Speicheroverhead vernachlässigen wir mal.

Ähm ja... was ist das für eine Rechnung? Von 2^128 auszugehen ist doch totaler qutasch, das würde vorraussetzen du hast ein Algorithmus um aus eine MD5 Hash ein Ausgangswert zu errechnen. (Vorallendingen ist überhaupt fragwürdig ob ein MD5 Hash überhaut 2^128 kompinationen hat) Also musst du prinzipiel immer von den Ausgangswerten ausgehen wie ice-breaker das schon gepostet hat um auf den Netto-Speicherbedarf zu kommen. Und um den tatsächlichen Speicherbedarf zu kommen müsste man erstmal die Architektur kennen oder entwerfen wie die Daten gespeichert werden. Sowas wie Mysql wäre dafür ungeeignet... jedenfalls beim aktuellen stand der Technik.
 
Leider auch falsch, T-Rex, ein MD5-Hash hat genau 128 Bit, nicht mehr und nicht weniger. Zur Darstellung wird meist eine 32stellige Hexadezimalzahl (bestehend 0-9 und a-f) genommen.
Darum gibt es 16^32=2^128?3,4E38 Kombinationen für einen MD5-Hash.
Für jeden Hash muss muss man nun den Ausgangswert (wir nehmen der Einfachheit halber an, dieser habe auch 128 Bit) und den Hash speichern (nochmal 128 Bit), also 256 Bit, den Speicheroverhead vernachlässigen wir mal.
Sind dann also 32 Byte*3,4E38 Kombinationen?1,1E40 Byte?9,9E27 TB.
Angenommen, eine Festplatte mit einer Kapazität von einem TB wiegt ein halbes Kilo. Der Computer, der deine Hash-Tabelle speichert, würde dann 5,0E24 Tonnen wiegen, hätte also ungefähr das tausendfache der Erdmasse!

Viel Spaß weiterhin,
MrToiz

Da ist völlig Schwachsinn. Grund ist die Quersummen erreichen immer wieder den selben wert. Ich habe dazu das 4+2+1 Beispiel gegben.

16^32 würde unter anderem auch das Leerzeichen beinhlaten!
nur wo ist das wohl im Hash?
16^32 würde unter anderem auch das Leerbit bzw. Endbit beinhlaten!
nur wo ist das im Hash zu finden?

es ist ein enormes weniger!

Ich sage es nochmal. Ich habe mich von überzeugen lassen. Man hat sich zwar nicht mit meinem Passwort sondern mit einem anderen eingloggt. Und es hat funktioniert. Sowas ist speicherbar.

16^32 es sind immer 32 Stellen.
31,30,29... fallen alles weg.

So eine Tabelle lässt sich speichern. Wir sind ja hier nicht im Kindergarten.

Quelle CT.
Im Jahr 1998 schaffte es die speziell zum DES-Knacken entwickelte Maschine Deep Crack (Kosten 220 000 US-Dollar), 90 Milliarden Schlüssel pro Sekunde auszuprobieren.
Quell: https://www.heise.de/ct/05/07/136/

Das war 1998 eim Supercomputer der 90MRD Schlüssel pro Sekunde ausprobierte. Eben so schnell lässt sich heute zu Tage Tabellen erstellen. Dazu braucht man keine Rechnerspeicher bis zum Mond. Wohl angemerkt, dass dieser Computer keinen Hash hatte, sondern wirklich jedes Passwort probieren musste.

Man kennt dies sogar von der Festplatten verschlüsselung, dass 128 BIt schon nicht mehr das sichere A und 0 ist.

Weiter im Zitat:
Sie benötigte zum Auffinden eines passenden Schlüssels im Durchschnitt 111 Stunden. Rechnet man ihre Leistung anhand des mooreschen Gesetzes hoch, so dürfte eine DES-Verschlüsselung derzeit in weniger als fünf Stunden fallen. Andere Schätzungen gehen sogar von weniger als einer Stunde aus.

Sowas anzulegen ist heut zu tage noch viel schneller möglich. Zwar haben wir keine Super Computer, aber wenn sich die Arbeit splittet, ist heute 128Bit gegenüber dem 56Bit absolut ausrechenbar. Da gibt es keine Speicherausreden.
 
Sry, ABC aber was du schreibst hat weder Hand noch Fuß.
Dein Artikel beschreibt einen Angriff auf DES mit einer Schlüssellänge von 56Bit ( :!: ), dieser Algorithmus stammt aus dem Jahre 1976 und ist daher so simpel und einfach aufzulösen.

Und deine Aussage zu den 16^32 ist totaler Mist, du implizierst damit dass du wirklich nur jeden md5-String sichern musst, das stimmt im Prinzip schon, und wie findest du alle raus? Du musst jegliches Zeichen errechnen, denn du wirst einige Kollisionen finden, du kannst ja net einfach aus nem md5-String nen Value berechnen
 
Sry, ABC aber was du schreibst hat weder Hand noch Fuß.
Dein Artikel beschreibt einen Angriff auf DES mit einer Schlüssellänge von 56Bit ( :!: ), dieser Algorithmus stammt aus dem Jahre 1976 und ist daher so simpel und einfach aufzulösen.

Und deine Aussage zu den 16^32 ist totaler Mist, du implizierst damit dass du wirklich nur jeden md5-String sichern musst, das stimmt im Prinzip schon, und wie findest du alle raus? Du musst jegliches Zeichen errechnen, denn du wirst einige Kollisionen finden, du kannst ja net einfach aus nem md5-String nen Value berechnen

Sagmal liest du auch Beiträge bevor du abstänkerst? :ugly: Genau das habe ich doch geschrieben:

Sowas anzulegen ist heut zu tage noch viel schneller möglich. Zwar haben wir keine Super Computer, aber wenn sich die Arbeit splittet, ist heute 128Bit gegenüber dem 56Bit absolut ausrechenbar. Da gibt es keine Speicherausreden.

Siehe hier: https://klamm.de/forum/showpost.php?p=2373200&postcount=27
gan am Ende!

Oder etwa nicht. Ich schrieb doch dass es ein 56Bit ist. Aber das war vor fast 10 Jahren schon die Möglichkeit. Nur Mal überlegen wie weit sich die Technologie etnwickelt hat.

:roll:

Der MD5 hat heute 72 Bit mehr. Also etwas mehr als das doppelte. Aber da sind 10 Jahre vergangen. Heut zu Tage gibt es auch andere Mittel.

Und ich erinnere an der Stelle nochmal.

Sie benötigte zum Auffinden eines passenden Schlüssels im Durchschnitt 111 Stunden.

Das wird beim MD5 heute mit so einer Supermaschine garantiert nicht länger brauchen.

Oder bist du auch der Auffassung das ein Passwort mit Sonderzeichen beim MD5 was bringt? Wenn man mit der Brechstange loslegt schon. Nur wenn man den Hash hat, ist das nutzlos.
 
Zuletzt bearbeitet:
Das war 1998 eim Supercomputer der 90MRD Schlüssel pro Sekunde ausprobierte. Eben so schnell lässt sich heute zu Tage Tabellen erstellen. Dazu braucht man keine Rechnerspeicher bis zum Mond. Wohl angemerkt, dass dieser Computer keinen Hash hatte, sondern wirklich jedes Passwort probieren musste.

Also erstens mal gibt es einen Unterschied zwischen Ausprobieren und Abspeichern. Nur, weil der Rechner 90 Milliarden Schlüssel pro Sekunde generiert und testet, heißt das noch lange nicht, dass diese auch alle gespeichert werden.

Dann solltest du den Absatz auch geschickterweise bis ganz zu Ende lesen. Es ging dabei nämlich um einen lächerlichen 56-Bit Schlüssel und nicht um einen 128 Bit-Schlüssel. Die Zahl der Möglichkeiten dürfte dabei in etwa exponentiell ansteigen und beträgt:
340.282.366.920.938.463.463.374.607.431.768.211.456
Und wie es in dem Artikel sehr schön beschrieben wird: "Selbst eine aktuelle Version von Deep Crack würde bei elf Terra-Versuchen (1,1 · 10^13) pro Sekunde noch rund 10^18 Jahre benötigen, um alle Varianten eines 128-Bit-Schlüssels zu prüfen. Zum Vergleich: das Universum ist gerade einmal 1,37 · 10^10 Jahre alt."

Der MD5 hat heute 72 Bit mehr. Also etwas mehr als das doppelte. Aber da sind 10 Jahre vergangen. Heut zu Tage gibt es auch andere Mittel.

Und ich erinnere an der Stelle nochmal.



Das wird beim MD5 heute mit so einer Supermaschine garantiert nicht länger brauchen.
Sorry, das ist lächerlich. Wenn sich die Schlüssellänge verdoppelt, verdoppelt sich nicht die Rechenzeit. Das ist doch nicht linear voneinander abhängig :LOL:


Nachtrag: Wenn man verteilt rechnen lässt, benötigt man ca. 6.000 Maschinen mit handelsüblichen Prozessoren und 3 Wochen Zeit.
 
Zuletzt bearbeitet:
Aua... es gibt ein paar unterschiede zwischen DES und MD5. Bei DES wird nur ein Schlüßel gesucht und der ist immer 56Bit lang. Also gibt es auch nur 2^56 möglichkeiten, bei md5 gibt es unendlich viele möglichkeiten. Willst du ein Wert haben der einen bestimmten MD5 Hash ergibt musst du sämtlich möglichen Ausgangswerte Testen. (es konnten zwar schon Kollisionen errechnet werden, aber nur unter bestimmten vorraussetzungen)

Das ganze mal in Zahlen ausgedrückt... als Ausgangslage geh ich jetzt mal davon aus das wir nicht nur nach A-Z0-9 Zeichen suchen sondern ganzen Bytes. Und sagen wir mal Ausgangsstrings bis zu 32Bytes suchen, dann kommen wir ja nur auf lächerliche
PHP:
115792000000000000000000000000000000000000000000000000000000000000000000000000
bzw.
1,15792E+77
möglichkeiten. Und was kann man damit machen? Toll, ein paar Passwort knacken :roll: Interessant wirds erst wenn man damit Signaturen fälschen kann, aber dazu kannst du 32Byte knicken. Und an Speicher würde das heißen wenn ich den Ausgangswert auf 32Byte auffülle und dazu noch 32Byte für den MD5 Hash komme ich auf lächerliche:

PHP:
257110000000000000000000000000000000000000 Petabyte
bzw.
2,5711E+61
(Petabyte ist so das höchste unter dem ich mir noch was vorstellen kann)

Und ich merk grade da ist noch ein Fehler in der Rechnung. Ich hab nur mit 8^32 gerrechnet. (von daher ist auch das auffülen Quatsch weil die Werte alle 32Byte lang sind) Eigentlich müsste man noch mit 8^31,8^30 usw. Rechnen. Also hat man am ende doppelt soviel kompinationen minus einer und auch der Speicherbedarf steigt noch ein "klein" wenig an.

Und zum Thema Speicher... die DES angriffe Speichern nix, sondern rechnen. Z.B. bei COPACOBANA ist der Algorithmus in die Hardware einprogrammiert in Form von FPGAs, und so ein FPGA kann reintheoriedisch in einem Takt einen Schlüssel testen (keine ahnung wie DES genau funktioniert, prinzipiell wäre es aber möglich).
 
Aua... es gibt ein paar unterschiede zwischen DES und MD5. Bei DES wird nur ein Schlüßel gesucht und der ist immer 56Bit lang. Also gibt es auch nur 2^56

Jetzt aber Bahnhof:

Bei DES wird nur ein Schlüßel gesucht und der ist immer 56Bit lang. Also gibt es auch nur 2^56

Wo nimmst du bei DES die 2 her? 2 Zeichen? Da kann was nicht stimmen. 8O

Es geht nicht darum was DES ist noch war. Es geht um de Hash selbst.

Dann noch zu diesem Monster: :-?
340.282.366.920.938.463.463.374.607.431.768.211.456

Im meinem Beitrag auf der Letzten Seite versuche ich das zu erklären. Bzw. Vieleicht erklärt mir es ein andere besser.

BEIM MD5 handelt es sich um nichts anderes wie ein PRÜFSUMMEN Verfahren!
Diese Prüfsumme ist der Hash. Man kann so auch Dateien ihre Eindeutigkeit zu 99,999999999....% zuweisen. Nur haben die Prüfsummen einen Hacken. Der Hacken ist die 0!

Dieses Beispiel nochmals herauskram ist zwar etwas weit weit weit weit (bevor wieder gemeckert wird) ausgeholt. Aber es erklärt warum es nich 32^16 sind!

Bevor man los legt, lese man bitte bei Hilfe Wikipedia:

Prüfsumme -> https://de.wikipedia.org/wiki/Prüfsumme
(wer nach dem Lesen mich fragen will, wass es mit einer Festplatte zu tun hat, das Prinzip ist das Gleiche -> weiter lesen)
Und dann bitte wer nicht weis was eine Summe genau ist
Summe -> https://de.wikipedia.org/wiki/Summe

Da geht also einer her, nimmt eine Bestimmte Anzahl an Zeichen (das Passwort z.B.) und verschlüsselt es so, in dem er eine Summe (Siehe Wikipedia) macht. Wie diese Summe letzt endlich berechnet wird spielt hier keine Rolle.

Dann kommen große Cracker um die Ecke, und behaupten so ein MD5 zu entschlüsseln zu können. Und die haben Recht. Warum erkläre ich hier am Beispiel nochmal.

Und das mir jetzt jede verstehen kann warum ist ganz einfach:

Eine Prüfsumme kann wie folgt aufgestellt werden:
1+2+4 = 7
1+4+2 = 7
2+4+1 = 7
2+4+1 = 7
4+2+1 = 7
4+1+2 = 7

Hier im Beispiel 3 Zeichen:
(ich gehe im Beispiel nur von der Möglichkeit 1 oder 2 oder 3 aus)
3x
Auf jeder Position 3 Möglichkeiten
3x
Das ganze auf 3 Positionen
3x

Es gibt 27 Hashes, was diese Zahl hier
340.282.366.920.938.463.463.374.607.431.768.211.456
bejat!

Aber die Prüfsumme ist Pro Ergebniss 6 Mal vorhanden!


Schauen wir an wieviel Ergebnisse es geben aus diesen dummen Beispiel:

1+1+1 = 3 (minmal)
1+1+2 = 4
1+2+2 = 5
.....

Ich habe noch einiges ausgleassen. Man sieht es gibt ganz viele Ergbnisse, wo raus sich die Hashes seslbst ganz gut zusammenstellen lassen.

Wenn man die Prüfsumme nun umgedreht betrachtet

7 -> 4+1+2
7 -> 4+2+1

Es kommt also nur auf das Passwort und die Verschlüsselungsmehtode selbst an, ob das Ergebnis 7 mit 4+2+1 oder 4+1+2 angezeigt wird. Das Ergebnis aber slebst wuzelt sich von Bit zu Bit!

Ich bräuchte bei 3 Zeichen a 3 * Stellen das 6 Fache wengier an Prüfsummen weil bei der Berechnung 6 Mal die Gleiche Prüfsumme herauskommt. Das ist die Logick, man kann auch sagen die Sicherheitslücke, die die Cracker dabei rausfanden. (Ein Pc kann ja nur Positiv bzw. Negativ Binä 0101 rechnen).

Jetzt kann sich das jeder ausrechen. Ich WETTE! Es wird nicht jede Prüfsumme genutzt die Es gibt! Genau dort ist der Hase begraben. Es ist nicht so, dass jede Kombination genutzt werden kann.

Da ich das schlechter erklären kann, gibt es hier auch schon Quellen im Netz, wo genau das diskutiert wird:

https://www.wer-weiss-was.de/theme9/article2234027.html

Wenn ich Mal nachzittieren kann:

Moin

1.) Können unterschiedliche Eingabedaten den gleichen Hash zur
Folge haben?

ja. (wie bei allen hashs)

2.) Wie sieht es mit der Eindeutigkeit aus, wenn der
Eingabestrom <=128Bit ist? Sind dann auch Duplikate
möglich?

imho nein. Aber das wird klar wenn man sich den Algo genauer ankuckt. Einen wirklichen mathematischen Beweis hab ich aber noch nicht gesehen.

Zu diesem Thema noch weitere Quellen:
https://forum.de.selfhtml.org/archiv/2007/2/t145860/

Solche Projekte gab es schon vor Jahren. Selbst beim MD5:
https://www.rechenkraft.net/wiki/index.php?title=MD5_Attack

# Insgesamt gibt es bei dieser Schlüssellänge genau 2^128 mögliche MD5-Hashes.
# Wenn man wiederholt zufällige Zahlen aus einem begrenzten Zahlenbereich 1 bis n auswählt, dann braucht man lediglich Quadratwurzel(n) Versuche, bis man mit hoher Wahrscheinlichkeit zwei gleiche Zahlen gefunden hat. Dieses Phänomen ist auch als Geburtstags-Paradoxon bekannt.

lediglich Quadratwurzel(n) Versuche,
(von was laber ich die ganze Zeit...) :roll: Wurzel

Ich werde noch einige Quellen zusammensuchen.
 
Zuletzt bearbeitet:
Wo nimmst du bei DES die 2 her? 2 Zeichen? Da kann was nicht stimmen. 8O

Ähm ja... 0 und 1 :LOL: Und weil der Key ebend 56Bit lang ist sind es 2^56 möglichkeiten.

BEIM MD5 handelt es sich um nichts anderes wie ein PRÜFSUMMEN Verfahren![..][/url]

Vielleicht solltest du dir erstmal anschauen was MD5 ist... das ist eine Hash-Funktion um genauzu sein eine Einweg-Hash-Funktion und da gibts ein kleinen aber feine unterschied zu sowas wie einer von dir geposteten Quersumme:

1+2+4 = 7
1+4+2 = 7
2+4+1 = 7
2+4+1 = 7
4+2+1 = 7
4+1+2 = 7
[...]
7 -> 4+1+2
7 -> 4+2+1

MD5 ist grade darauf ausgelegt das man aus dem Hash nicht die ursprüngliche Nachricht ableiten kann. Es gibt keine möglichkeit aus einem MD5 Hash mögliche urspungswerte zu abzuleiten. Also ist der einzig mögliche Angriff Brute-Force und das sieht so aus das du von Klartextwerten ein Hash erzeugst und diesen mit dem Gesuchten vergleichst. Und somit hast du unendlich viele möglichkeiten... natürliche wenn du nur nach maximal 8 Byte suchst hast du eine begrenzte Anzahl an möglichkeiten, diese sind aber immer noch astronomisch hoch und bei 8 Byte trit sehr wahrscheinlich noch keine kollision auf.
 
Zuletzt bearbeitet:
Zur allerersten Frage:

Die 2 kommt daher, dass es 56 Bit sind. Ein Bit kann 2 Zustände annehmen (0 und 1), insofern ist die Anzahl der Möglichkeiten 2^56.

Zum MD5:

MD5 ist im Endeffekt keine Prüfsumme, es ist ein kryptografisches Hashverfahren, das nicht nur für Passwörter benutzt wird. Es ist vielmehr ein essentieller Baustein der Kryptographie, der die Integrität verschlüsselter Daten eindeutig nachweisen kann.
Du kannst nicht einfach hergehen und das mit einer simplen Prüfsumme vergleichen und darauf Deine Vermutungen stützen. Guck Dir mal den Algorithmus zum Berechnen eines MD5-Hashes an. Da ist enorm Bitgeshifte dabei und es wird klar, dass vitale Informationen einfach verloren gehen. Das ist auch der Grund, weshalb ein MD5-Hash nie ein-eindeutig "entschlüsselt" werden kann. Alleine schon deshalb, weil MD5 einfach nichts verschlüsselt.

Um das Ganze beim Namen zu nennen: Du zäumst das Pferd von hinten auf und das geht schief. Es geht nicht darum, dass verschiedene Klartexte den gleichen Hash haben (das ist ja Deine Annahme, auf die Du Deine Aussage stützst). Es geht darum, dass jedem Hash (mindestens) ein Klartext zugewiesen wird. Insofern braucht man für jeden möglichen Hash in einer Lookuptabelle einen solchen Klartext. Sprich: Man braucht für 16^32 Hashes etwa ebensoviele Klartexte (gewisse Kollisionen mit einbezogen). Somit müsste eine vollständige Lookuptabelle auch genau diese enorm grosse Anzahl von Möglichkeiten abdecken.

Egal, wie man's dreht und wendet, ob's nun ein paar 10er-Potenzen mehr oder weniger sind, diese Datenmenge ist nicht effizient, geschweige denn kostengünstig speicherbar...

Hm, zulang getippt... *g*