| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
thewuz Erfahrener Benutzer
Anmeldedatum: 21.01.2007 Beiträge: 223 Wohnort: Nähe Wien Programmiersprachen: PHP, HTML, JAVA, JavaScript Compiler: Eclipse für JAVA
|
Verfasst am: 16.02.2007, 22:54 Titel: [PHP] md5 entcoden |
|
|
Der Titel spricht wohl für sich!
Ich möchte einen md5-hash wieder normal machen und ausgeben.
Geht das? wenn ja, wie? |
|
| Nach oben |
|
 |
synapsis Administrator
Anmeldedatum: 15.10.2006 Beiträge: 385 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python Compiler: gcc, MS VS2005 SE
|
Verfasst am: 17.02.2007, 09:18 Titel: |
|
|
Nein!
Das geht nicht und das soll auch nicht gehen. Es ist ja grad der Sinn eines Hashes, (auch sog. Einwegalgorithmus) dass man aus dem Hash nicht mehr auf den ursprünglichen Text schließen kann. (theoretisch wärs schon möglich, aber es würde Jahrmillionen dauern, selbst mit modernsten Clustern) Allerdings ist der Hash bei unterschiedlichem Input jeweils unterschiedlich, d.h. eindeutig.
Hashes werden benutzt um Passwörter zu speichern. Die Passwörter, die in der Datenbank dann als Hash vorliegen, werden mit dem Hash der Eingabe des Benutzers verglichen. Da ein Hash eindeutig ist, stimmen also bei Eingabe des richtigen Passwortes, die Hashes überein.
Der Vorteil dieser Variante ist, dass in der Datenbank keine Klartext-Passwörter stehen, sondern nur Hashes, mit denen ein Angreifer nichts anfangen kann.
Außerdem gibt es noch eine Möglichkeit, einen Login mit Hashes sicherer zu machen. Normalerweise wird das Passwort, welches der Benutzer zum Einloggen verwendet ja entweder per POST oder GET im Klartext verschickt. Bei einem "Man in the Middle"- Angriff, hätte der Angreifer schon das Passwort als Klartext.
Nun kann man ein JavaScript schreiben, welches das Passwort, welches der Benutzer im Formular eingibt, sofort in einen Hash umwandelt. Dann wird nur der Hash übertragen und sollten die Daten irgendwie abgefangen werden, kann der Angreifer damit (meistens) nichts anfangen.
Jedoch muss man dazusagen, dass der MD5-Hash nicht der sicherste ist. Man hat mittlerweile eine handvoll Kollisionen festgestellt. (doppelte Hash-Werte)
Der SHA-512 ist deutlich sicherer und auch länger. (512 bit) Jedoch muss man unter php eine Erweiterung einsetzten, um den SHA-Hash benutzen zu können. |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 407 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 17.02.2007, 10:19 Titel: |
|
|
Es reicht bereits einfach md5(md5($password)); zu nehmen. Da kommt kaum mehr jemand dahinter. Aber dennoch:
Es ist möglich, md5-Hashs zu entschlüsseln, aber meines Wissens nur extrem schwer. _________________ http://www.Julian-Stier.de | T-REx 2.2
Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008
Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009 |
|
| Nach oben |
|
 |
thewuz Erfahrener Benutzer
Anmeldedatum: 21.01.2007 Beiträge: 223 Wohnort: Nähe Wien Programmiersprachen: PHP, HTML, JAVA, JavaScript Compiler: Eclipse für JAVA
|
Verfasst am: 17.02.2007, 19:11 Titel: |
|
|
also mal danke synapsis, so wollte ich das eigentlich auch gestalten, nur wie ich bin mach ichs natürlich wieder kompliziert und wollte das passwort vorher umwandeln
nagut
danke euch beiden |
|
| Nach oben |
|
 |
fhwebsite Neuer Benutzer
Anmeldedatum: 19.08.2007 Beiträge: 5
Programmiersprachen: xHTML, CSS, PHP, MySql, minimal Java & C++ Compiler: Bloodshed Dev C++
|
Verfasst am: 20.08.2007, 09:32 Titel: |
|
|
theoretisch ist es möglich die 128bit verschlüsselung zu "knacken", das funktioniert aber nur über eine datenbank. Dabei werden tausende verschiedener md5hashs gespeichert, natürlich dazugehörig die zeichenfolge die verschlüsselt wurde. nun kann man in der datenbank nachschauen, ob der hash durch zufall schon einmal vorgekommen ist. wenn ja, hat man die verschlüsselte zeichenfolge.
Alles in allem wird dabei der hash nicht geknackt, es handelt sich eher um stupides, langwieriges Ausprobieren... |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 407 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 20.08.2007, 12:19 Titel: |
|
|
broot forcing eben..
Aber selbst dann ist md5(md5($string)) immer noch so gut wie kaum knackbar.. ein Hoch auf unsere Verschlüsselungstechnik xD _________________ http://www.Julian-Stier.de | T-REx 2.2
Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008
Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009 |
|
| Nach oben |
|
 |
fire90de Neuer Benutzer

Anmeldedatum: 01.04.2007 Beiträge: 23 Wohnort: Velbert Programmiersprachen: HTML, CSS, PHP, Turbo Pascal, bisschen JAVA Compiler: Öh...
|
Verfasst am: 20.08.2007, 14:23 Titel: |
|
|
| Such einfach mal im Internet, da finden sich schon ein paar geeignete und gute Seiten, wo du nach nem md5-hash suchen lassen kannst. Die funktionieren auch, zwar nicht bei allen aber ich habe da einige herausgefunden. |
|
| Nach oben |
|
 |
synapsis Administrator
Anmeldedatum: 15.10.2006 Beiträge: 385 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python Compiler: gcc, MS VS2005 SE
|
Verfasst am: 26.08.2007, 08:08 Titel: |
|
|
Ja, es gibt durchaus einige HashTables, die schon einige Daten enthalten. Der MD5 sollte aber für wirklich sicherheitsbewusste Anwendungen gar nicht mehr verwendet werden, weil er Kollisionen aufweist.
Aber wenn die Hashes nur zum Vergleich beim Login in einer DB gespeichert werden, stellen solche Hash-Datenbanken ja keinerlei Gefahr dar. (wenn die db ausreichend geschützt ist) |
|
| Nach oben |
|
 |
devkid Neuer Benutzer
Anmeldedatum: 12.04.2007 Beiträge: 6 Wohnort: Borthen Programmiersprachen: C/C++, HTML, CSS, PHP, SQL Compiler: GCC, MinGW(unter Windows)
|
Verfasst am: 26.08.2007, 21:27 Titel: |
|
|
So, da ich mir auch schon genug Gedanken über eine 100%ig sichere Authentifizierung(ok, 99,9999... %), muss ich sagen, dass MD5 durch Kollision gar nicht so schwer zu knacken ist. Bei einer beschränkten Passwortlänge von 8 bis 10 Zeichen(wie halt normale Passwörter so sind) ist es mit einem 4 Ghz-Prozessor locker möglich, den Hash innerhalb eines Jahres zu knacken.
Und das Verfahren über vorherige Verschlüsselung über Java-Script ist (eigentlich) auch recht sinnfrei: dann bekommt der 'Man in the middle' halt das gehashte Passwort mit und loggt sich mit diesem ein(selbstverständlich _NICHT_ mit einem normalen Browser; eher telnet).
Mir ist inzwischen aber eine ziemlich hilfreiche Methode eingefallen(die aber schwer über Java-Script realisierbar wäre):
1. Server sendet Client eine gehashte Zufallszahl
2. Client hasht das Passwort einmal
3. Client hängt die gehashte Zufallszahl an das gehashte Passwort an und hasht das ganze erneut.
4. Server macht [siehe 3.]
5. Client sendet gehashtes Gesamtergebnis an den Server.
Selbst wenn nun der 'Mitm' die Zufallszahl UND das Gesamtergebnis mitbekommt, kann er immer noch nichts damit anfangen. _________________
Get Firefox
 |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|