0 Daumen
2,3k Aufrufe

Ich verstehe nicht, wieso man nicht 2^32 als Ergebnis bekommt. Wie berechnet man die Möglichkeiten für MD5?

Avatar von

Was ist MD5?                            

das ist eine Hashfunktion

Ok und weiter?              

Ja wie viele Möglichkeiten für den Hashwert gibt es?

2 Antworten

+1 Daumen
 
Beste Antwort

Ich nehme an, dass Du weißt, wie MD5 funktioniert. Ein mit MD5 berechneter Hashwert besteht aus \(32\) Hexadezimalzahlen \(z\) mit \(z\in\{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f\}\). Der MD5-Hash für das sehr schwache Passwort 'passwort' lautet z.B. \(e22a63fb76874c99488435f26b117e37\). Für jede der \(32\) Stellen gibt es \(|\{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f\}|=16\) Möglichkeiten. Insgesamt sind somit \(16^{32}\) verschiedene Hashes möglich. Du kannst die Anzahl auch über einen anderen Denkansatz berechnen. Eine Hexadezimalzahl ist nämlich durch \(4\) Bit darstellbar. Folglich kann ein MD5-Hash auch als Bitfolge der Länge \(4\cdot 32=128\) aufgefasst werden.

Daraus ergeben sich \(|\{0,1\}|^{128}=2^{128}=\left(2^{4}\right)^{32}=16^{32}\) Kombinationsmöglichkeiten. Dein Ansatz scheint mir falsch zu sein. Ist die Rechnung nachvollziehbar?

Avatar von
+1 Daumen

> wieso man nicht 232

Weil MD5 128 bits produziert, nicht 32.

> Wie berechnet man die Möglichkeiten für MD5?

Das erste bit kann zwei Werte annehmen, 0 und 1. Es gibt 2 Möglicheiten.

Für jede dieser zwei Möglichkeiten kann das zweite bit zwei Werte annehmen, 0 und 1. Es gibt 2·2 = 4 Möglicheiten.

Für jede dieser vier Möglichkeiten kann das dritte bit zwei Werte annehmen, 0 und 1. Es gibt 4·2 = 8 Möglicheiten.

etc.

Avatar von 5,7 k

Das sehe ich auch so. Seinen/ihren Ansatz habe ich auch nicht verstanden. \(16^{32}\) hätte man noch nachvollziehen können, da bei MD5 Hexadezimalzahlen die \(32\) Stellen bilden.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community