PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlegende Frage zur md5-Verschlüsselung!


mad-boy
24.11.2002, 22:06:08
Hi,
ma ne Grundlegende Frage:
Ich hab ne MySQL in der Passwörter momentan im Klartext stehen, jetzt möchte ich die mit md5 verschlüsseln (md5 ist wohl das meist genutzte, oder?) nun mein Prob: Die verschlüsselung ist ja nicht wieder umkehrbar, wie zum Henker nochmal kann ich dann prüfen ob das eingegebene Passwort richtig ist? (z.B. für einen Login)

Gweilo
25.11.2002, 10:18:15
du verschlüsselst sein eingegebenes passwort und testest, ob dieses verschlüsselte pw gleich dem verschlüsselten pw in der datenbank ist...

mad-boy
25.11.2002, 10:46:40
Aber dass kapier ich nich, dann muss mans doch auch umdrehen können? Das heißt ja, dass die Passwörter nach nem bestimmten Rüttmus verschlüsselt werden und diesen Rüttmus muss man doch auch umdrehen können?!?

Noch was: Soll ich md5 nehmen oder was würdet ihr so empfehlen?

MiH
25.11.2002, 11:27:14
wieso?
dein wert in der db:
e1023521acbbb

"e1023521acbbb" entspricht mal "123456"

so die usereingabe in dem formular:
ist 123456

dann machst du mit php folgendes:

$sql = "select * from user where name = '".$_POST["name"]."' && pass = '".md5($_POST["pass"])."'";

danach werden eben die 2 werte verglichen.

ein kleines beispiel:
http://www.f078.net/php/tutorial/php/php_140902.php

mad-boy
25.11.2002, 11:59:44
ok, das hab ich verstanden aber dass muss doch dann auch umkehrbar sein! Alles was nach einem festen Rythmus verschlüsselt wurde is wieder umzukehren! Oder?!? Oo

Dago
25.11.2002, 12:26:55
md5() ist eine Einweg-Verschlüsselung.
Kurz gegoogelt: http://www.ch280.thinkquest.hostcenter.ch/crypto/md5.html
Die Daten werden dabei unwiederherstellbar "verstümmelt".

Für sichere umkehrbare Verschlüsselung braucht man einen Schlüssel.
Soweit ich weiß, gibt es in PHP (noch) keine solche Funktion.

mad-boy
25.11.2002, 12:40:01
Also ihr meint md5 is sicher, ja? Das kann ich nehmen?

MiH
25.11.2002, 12:51:17
nein kannst du nicht, unsicher :)

was willst du noch hören.
eine einwegverschlüsselung ist sicher. md5 erzeugt einen 32 bit langen schlüssel viel spass beim knacken. rc5-64 haben x rechner über 3 jahre gebraucht.

mad-boy
25.11.2002, 14:05:21
jaja, is ja schon ok! Dann nehm ich das wohl! :)

McDoogle
28.12.2002, 13:15:49
Zum Prinzip von Datenverschlüsselung.

Es stimmt, was bisher hier gepostet wurde. md5 ist sicher. Soviel dazu.

Die Verschlüsselung basiert auf einem sehr komplexen mathematischen Schema (einer sog. Funktion). Es gibt in der Mathematik gewisse Möglichkeinten und Kniffe, damit ganz spezielle Funktionen nicht umkehrbar sind (dabei braucht man immer neue Primzahlen, jetzt weißt Du wieso man die mal in der Schule drangenommen hat.) Wenn Du jetzt in eine solche Funktion einen Wert (ASCII Zeichen (kette) ) reinsteckst, bekommst Du ein Ergebniss, von dem Du nicht mehr auf den ursprünglichen Input zurückkannst.
Wenn Du jetzt wissen willst, ob zwei Zeichenketten identisch sind, mußt Du die zweite ebenfalls verschlüsseln, und dann die beiden kryptischen Codes vergleichen.
Willst Du jetzt also einen solchen Code knacken (dekodieren) bleibt Dir nur sie sog. Brutforce Methode übrig. D.h. Du generierst "alle" möglichen Zeichenketten die in Frage kommen verschlüsselst diese und testest dann auf gleichheit.
Das kann aber aufgrund der Länge der Codes und Anzahl daraus resultierender Möglichkeiten selbst für die schnellsten rechencluster der Welt eine Monatelange oder Jahrelange aufgabe sein.
Das ist auch der Grund, wieso mit steigender Leistung der Superrechner die Codelänge wachsen muß.
Als Beispiel: Bis vor wenigen Jahren galt Algorithmus, mit dem mal z.B. Mails verschlüsseln kann mit einer Länge von 64 Bit als sicher. Heute muß man schon 128 bit nehmen. Da das ausprobieren aller möglichkeiten mit 64 Bit im Studen bis Tagebereich gesunken ist. Und das würde sich unter umständen rechnen.

Jetzt kannst Du Dir hoffentlich ein wages Bild dieser technik machen. Alles in allem ist das noch erheblich komplexer als hier dargestellt. Ich kann nur sagen ich studiere Informatik und wirklich verstanden hab ich es bis heute noch nicht. Mir ist die Mathesparte in dem Gebiet zu hardcore!

Greetings MC

mad-boy
28.12.2002, 13:32:55
:D Danke! :))
So langsam kapier ich warum man das nicht decodieren kann! :)

Progman
29.12.2002, 00:02:46
ein verdammt scheiss beispiel für eine ein-weg-verschlüsselung: Ich denke mir eine Zahl aus, dessen Quersumme 7 ist. Nur welche Zahl hab ich mir ausgedacht? 7 ? 16? 40020100 ? Du kannst nicht zurückverfolgen welche Zahl ich mir ausgedacht habe.
Das ist wohl die billigste einwegverschlüsselung, die man sofort knacken kann ;)

McDoogle
29.12.2002, 01:00:47
Zum Beispiel! Das ist das Prinzip.

Hoffentlich merke ich mir das Beispiel. Man könnte fast sagen eine Bild (Beispiel) sagt mehr als tausend Worte!

MC

Beamer
29.12.2002, 18:14:51
Ich möchte mich mal mit einem anderen simplen (rein mathematischen) Beispiel anschließen:

Eine Zahl x hoch 2 ist verschlüsselt 9. Aber es gibt keine eindeutige Umkehrung, denn x=3 ist genauso richtig wie x=-3.

McDoogle
29.12.2002, 18:33:42
Schlechtes Beispiel!

Es gibt die Umkehrfunktion (Wurzel). Die ist zwar nicht eindeutig, aber existent. Bei der geringen Zahl von Lösungen (2) braucht man nicht lange versuchen. Du kannst nömlich über die Umkehrfunktion den Raum der Möglichkeiten berechnen.
Das obere Beispiel ist insofern besser, da es für die Quersumme keine Umkehrfunktion gibt.
Du kannst also auch den Raum der Möglichkeiten nicht mit einer Rechnung enschränken.
Auch wenn man bei dem Beispiel noch leicht die Lösung "erraten kann".

Aber eigentlich ist das jetzt auch nur Wortklauberei. Das prinzip hast verstanden und darum gehts. Alles weitere artet zu sehr in die Mathematik aus.

mad-boy
29.12.2002, 18:54:13
Original geschrieben von McDoogle
Alles weitere artet zu sehr in die Mathematik aus.

Neiiiiiiiiiiiiiiiiiiiiiiiiiinnnnnnnnnnnnnn *wegrenn* Nicht Mathe!!!

*g*