md5 entschlüsseln
Stephan
- software
Hallo,
ich habe eine db, da sind Passwörter mit md5 verschlüsselt, ich bin der Admin, möchte, dass ich die Passwörter unverschlüsselt anzeigen kann. Wie kann ich das machen?
Ich weiss, dass es ein Prog dazu gibt, ich kenne nur den Namen nicht...
Ist auch keine öffendliche Datenbank, nur mein Testding...
Danke schon jetzt
Stephan
PS. Falls es gegen die Regeln verstößt, könnte mir jemand den Namen bzw. den Code an meine E-Mail zuschicken??
Hello Stephan,
Passwörter mit md5 verschlüsselt, möchte, dass ich die Passwörter unverschlüsselt anzeigen kann.
Ich weiss, dass es ein Prog dazu gibt, ich kenne nur den Namen nicht...
Ich kenne den Namen leider auch nicht. Aber wenn Du das Programm hast, dann sag bitte Bescheid. Ich hätte es dann auch gerne *g*
Grüße
Tom
Mach ich!--
--
Ohne Ziel stimmt jede Richtung
Moin!
Ich weiss, dass es ein Prog dazu gibt, ich kenne nur den Namen nicht...
MD5 ist ein Einweg-Hashalgorithmus, den man nicht wieder entschlüsseln kann. Es gibt Brute-Force-Programme, die ein MD5-Ergebnis (oder auch mehrere) entgegennehmen und dann alle möglichen Buchstabenkombinationen durch MD5 jagen und gucken, ob das Ergebnis mit einem der Vorgaben übereinstimmt. Dann hat man ein Passwort "gefunden" (wobei es nicht das Originalpasswort sein muß - Stichwort Kollisionen).
Wenn du da also ein Programm gefunden hast, das es "anders" macht, wäre auch mein Interesse daran sehr hoch. Und das des restlichen bekannten Universums ebenso, denn mit der Sicherheit von MD5 stehen und fallen ziemlich viele Authentifizierungsmechanismen. Damit würdest du spontan eine heftige Publicity genießen und vermutlich zum Terrorziel aller bekannten Geheimdienste avancieren.
- Sven Rautenberg
Moin,
ich habe eine db, da sind Passwörter mit md5 verschlüsselt, ich bin der Admin, möchte, dass ich die Passwörter unverschlüsselt anzeigen kann. Wie kann ich das machen?
MD5 ist keine Verschlüsselung sondern eine Einweg-Hash-Funktion, noch dazu eine kryptographisch starke. Es _kann_ gar keine Entschlüsselungs_funktion_ geben, da MD5 eine unendlich große Menge von Eingabewerten auf eine endliche Menge von Ausgabewerten abbildet. Es gibt es also unendlich viele Eingabewerte die den selben Ausgabewert haben. Damit kann es keine Funktion geben die zu einem Ausgabewert _den_ Eingabewert ermittelt.
Was es aber geben könnte wäre eine Funktion die _einen_ Eingabewert ausgibt der diesen Ausgabewert zur Folge hat. Und hier kommt in's Spiel, dass MD5 stark ist: Eine Funktion die das direkt berechnet ist nicht bekannt und MD5 ist so designt, dass es schwierig ist so eine Funktion herzustellen. Also kann man nur machen, was immer geht: Brute Force. Man probiert eine Menge Eingabewerte durch und hofft, dass irgendwann mal der gegebene Ausgabewert rauskommt. Das ist dann aber nicht notwendigerweise der vorher benutzte Eingabewert, sondern nur einer der damit kollidiert.
Ich weiss, dass es ein Prog dazu gibt, ich kenne nur den Namen nicht...
Japp, mdcrack ist zum Beispiel ein gutes Programm dafür. Link kriegst du von Google.
Hallo Stephan,
ich habe eine db, da sind Passwörter mit md5 verschlüsselt,
Nein. MD5 ist ein Hash, keine Verschlüsselung. Deswegen hast Du - ohne die nötige Rechenpower zum durchprobieren aller Möglichkeiten - keine Chance. Allerdings gibt es nur 340282366920938463463374607431768211456 Möglichkeiten, d.h. spätestens nach dem 340282366920938463463374607431768211456ten ausprobierten Passwort müsstest Du statistisch gesehen ein Passwort gefunden haben, das zu dem MD5-Hash passt. :-)
Viele Grüße,
Christian
Hallo Stephan,
ich habe eine db, da sind Passwörter mit md5 verschlüsselt, ich bin der Admin, möchte, dass ich die Passwörter unverschlüsselt anzeigen kann. Wie kann ich das machen?
md5 ist ein one-way Hash Algorithmus. Es ist also nach Konstruktion (hoffentlich!) nicht möglich vom md5 Hash auf das Passwort zu schließen. Ein mathematischer Ansatz zur Umkehrung des Algorithmuses ist mir nicht bekannt - und das ist auch ganz gut so :-). Man speichert schließlich den Hash Wert der Passwörter und nicht die Passwörter selbst, damit u.a. kein böswilliger Angreifer (oder auch Admin!) in Besitz eines wohlmöglich noch anderswo verwendeten Passwortes kommt. User sind eben bequem und so wird auch schon mal das Passwort für das Online-Banking im Forum XYZ verwendet.
Es gibt aber einen nicht mathematischen Ansatz das Passwort rauszufinden: "intelligentes" Brute Force: oft verwendete Passwörter vorwärts/rückwärts groß/klein geschrieben mit Zahlen vorne/hinten usw. mit allemöglichen Kombinationen durchprobieren. Ein Tool was, daß ganz gut beherscht ist john (http://www.openwall.com/john/).
Ist auch keine öffendliche Datenbank, nur mein Testding...
John liefert erschreckend gute Ergebnisse - wollen wir hoffen, daß es wirklich nur dein private Testdatenbank ist.
Grüße,
Peter
Hi,
ein kleines Quiz: VOn welcher Zahl bin ich ausgegangen, um die Quersumme 9 zu bekommen?
a) 333
b) 603
c) 810
d) 117
e) 009
f) 162
[...]
E7
Hallo e7,
ein kleines Quiz: VOn welcher Zahl bin ich ausgegangen, um die Quersumme 9 zu bekommen?
a) 333
b) 603
c) 810
d) 117
e) 009
f) 162
[...]E7
natürlich ist die Lösung 522, weil 5^2-2 nämlich 23 ist!
Aber im Ernst: Ist md5 nicht injektiv?
Grüße,
Peter
Holladiewaldfee,
Aber im Ernst: Ist md5 nicht injektiv?
Wie sollte er es sein, wenn unendlich viele Eingaben auf endlich viele Werte abgebildet werden, wenn die Menge der Eingaben größer ist als die der Ausgaben?
Injektivität bedingt ja, daß jedem Element aus md5(x) nur höchstens ein x zugeordnet ist.
Ciao,
Harry
Hallo Harry,
Aber im Ernst: Ist md5 nicht injektiv?
Wie sollte er es sein, wenn unendlich viele Eingaben auf endlich viele Werte abgebildet werden, wenn die Menge der Eingaben größer ist als die der Ausgaben?
das ist natürlich logisch - habe ich nicht drüber nachgedacht.
Ergänzend (zum selber denken) habe ich auch mal in der entsprechenden RFC nachgelesen:
RFC1321
| It is conjectured that the difficulty of coming up with two messages
| having the same message digest is on the order of 2^64 operations,
| and that the difficulty of coming up with any message having a given
| message digest is on the order of 2^128 operations.
Grüße,
Peter
Hallo Peter,
Aber im Ernst: Ist md5 nicht injektiv?
Nein (wie Harry schon erwähnte), aber immerhin surjektiv.
Viele Grüße,
Christian
Holladiewaldfee,
Nein (wie Harry schon erwähnte), aber immerhin surjektiv.
ist das irgendwo dokumentiert?
Das würde mich nämlich wirklich interessieren, denn selbst bei unendlicher Eingabemenge muß der Algorithmus nicht zwangsläufig surjektiv sein.
Ciao,
Harry
Hallo Harry,
ist das irgendwo dokumentiert?
Nicht, dass ich wüßte, ich leite mir das jedoch ab: Wenn MD5 nicht surjektiv wäre, dann würden Kollisionen viel häufiger auftreten, als die oft angegebenen 2^128 mögliche Eingaben. (anders gesagt: uns wäre ein riesiger Bär aufgebunden worden und MD5 wäre deutlich unsicherer als bisher angenommen)
Das würde mich nämlich wirklich interessieren, denn selbst bei unendlicher Eingabemenge muß der Algorithmus nicht zwangsläufig surjektiv sein.
Klar.
Viele Grüße,
Christian
Hallo Christian,
Nicht, dass ich wüßte, ich leite mir das jedoch ab: Wenn MD5 nicht surjektiv wäre, dann würden Kollisionen viel häufiger auftreten, als die oft angegebenen 2^128 mögliche Eingaben. (anders gesagt: uns wäre ein riesiger Bär aufgebunden worden und MD5 wäre deutlich unsicherer als bisher angenommen)
in der zugehörigen RFC wird ja auch nur von der _Vermutung_ gesprochen, daß die _Größenordnung_ bei 2^128 liegt.
Ich stelle mir einen Beweis für die Surjektivität von md5 auch ziemlich schwierig vor: Immerhin ist der Algorithmus ja so konstruiert, daß er nicht vernünftig umkehrbar ist. Dürfte also nichts mit einem simplen "für alle y Element md5(X) => es gibt ein x Element X" geben.
Auf der letzten CeBit hat ein Kryptoanalytiker während einer Podiumsdiskussion (zum leidigen Thema TCPA) gemeint, daß Hashing eines der mathematisch am schlechtesten erforschten Gebiete sei. Habe eben ein bißchen gegoogelt aber auch nichts definitives gefunden. Vielleicht weiß man ja simple und einfach noch nicht, ob md5 surjektiv ist - und ausprobieren dürfte etwas *länger* dauern ;-)
Grüße,
Peter
Hi,
natürlich ist die Lösung 522, weil 5^2-2 nämlich 23 ist!
Aber im Ernst: Ist md5 nicht injektiv?
das wahrjetzt eigentlich von md5() unabhängig, um das System zu verdeutlichen. Denn: md5() hat 32 Stellen, meine Quersumme aber nur eine. 5+2+2=9 - könnte sein. Allerdings hätte ich am Anfang ebeso eine andere Zahl nehmen können.
E7
PS: Oder ich hätte mir auch zuerst eine Zahl ausdenken können, und dann dazu die Ursprungsmöglichkeiten suchen können... Auch "BruteForce" genannt (wobei ich gedanklich auch diverse Optimierungen vornehmen konnte)...