+1 Daumen
405 Aufrufe

Gegeben ist ein hash ea90622fa6e23cf933bfdf5db28473fb. Wie findet man hierzu das Passwort? Das Passwort wurde mit md5 verschlüsselt. wir haben auch hinweise (damit das nicht so schwer ist?

1. das Passwort besteht nur aus zahlen

2. das Passwort ist mindestens eine und maximal 10 stellen lang

3. es gibt keine führenden nullen

ich habe überlegt das mit einem Programm zu lösen aber programmieren kann ich nicht so gut. gibt es eine andere Möglichkeit das auzurechnen? danke

von

2 Antworten

+2 Daumen
 
Beste Antwort

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é


von

Dankeschön wie starte ich das Programm? ich habe das jetzt als java Datei gespeichert aber wenn ich draufklicke öffnet er nur das file. und wo soll ich da etwas eingeben?

Kompiliere das Programm mit dem Befehl javac über die Konsole (CMD, wenn Du Windows nutzt). Das erzeugt eine .class-Datei. Anschließend tippst Du ein: "java NAME_CLASS_DATEI HASHWERT". Den Hashwert übergibst Du an der Stelle HASHWERT beim Aufruf über die Konsole. Achte darauf, dass Du Dich im CMD-Fenster im selben Verzeichnis wie die Java-Datei befindest.

okay ich versuche das mal. nochmal danke!

+3 Daumen

Der Sinn eines Hashwertes ist es, diesen gerade NICHT zurückrechnen zu können!
Man muss alle 2^128 = 340282366920938463463374607431770000000 Varianten durchprobieren.
Viel Glück!

Okay, ich habe das gerade mal für dich gemacht, das Pwd lautet: 424242

Erstens gibt es Leute, die für gaaaanz viele Passworte den MD5 berechnet haben und diese Werte in einer Datenbank zur Verfügung stellen. Da hab' ich den Hash her. (Sowas ist mit Google unter "md5 decrypt" leicht zu finden...)

Zum Anderen ist MD5 nicht ganz sooo sicher wie andere Verfahren.

Glück gehabt ;-)

von

Dankeschön für deine Antwort. Die hat mir auch sehr geholfen!

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community