Hallo Mathfox,
mal wieder MD5? Habt ihr aktuell ein Übungsblatt dazu zu lösen? :-D
Wie Du aus meinen gestrigen Antworten hier und hier weißt, gibt es \(2^{128}\) mögliche MD5-Hashes. Den Einschränkungen nach zu urteilen, sollt ihr das wohl mit der Brute-Force-Methode lösen. Mein Vorgehen bestünde darin, eine Variable \(k\) alle Werte von \(0\) (wenn man das nicht als führende \(0\) ansieht) bis einschließlich \(9999999999\) laufen zu lassen, \(\forall k\) den MD5-Hash zu berechnen und den berechneten Hash \(h'=MD5(k)\) mit dem vorgegebenen Hash \(h\) zu vergleichen. Der Algorithmus terminiert, sobald \(h'=h\) und das Passwort ist dann \(k\).
Ich habe ein kleines Java-Programm geschrieben, das die Berechnung durchführt. Demnach ist Dein Passwort wohl \(424242\). Das Programm hat auf meinem Rechner gerade einmal \(1.54\) Sekunden gebraucht. Wie mein Vorredner aber schon gesagt hat, kann man auch auf Online-Datenbanken zurückgreifen.
Hier ist mein Code. Angeblich besitzt meine .java-Datei keine Dateiendung (vermutlich ein Problem in der Mathelounge ... oder Sicherheitsgründe?) Einfach den Code als .java-Datei abspeichern, kompilieren und ausführen. Als Input wird der zu entschlüsselnde Hash erwartet. Melde Dich gerne wieder, wenn Du Fragen dazu hast. Decrypt.txt (2 kb)
André