hallo allerseits.
was genau sind md5 prüfsummen? angeblich kann man damit ja überprüfen, ob z.b. eine runtergeladene datei in ordnung ist.
aber wie prüft man sowas? wie setzen sich prüfsummen zusammen? und was sind "Hash-Werte"? (den begriff höre ich des öfteren mal in verbindung mit "md5")
vielen dank
Allgemeines 22.005 Themen, 148.987 Beiträge
zuerst mal zu hash....hash ist nichts anderes als eine prüfsumme für eine menge von daten, unabhängig von der art, wie sie erzeugt wurde. md5 ist eine spezielle art der hashfunktionen. dabei wird aus einer menge von daten für die jeweiligen datenblöcke ein hashwert nach einem festen algorithmus erzeugt. falls es dich interessiert, der algorithums sieht flgendermaßen aus:
A := h0
B := h1
C := h2
D := h3
FOR t = 0 TO 63 DO
BEGIN
T := B + ((A + ft(B,C,D) + W(t) + Kt), Rk)
B := A
A := D
D := C
C := T
END
h0 := h0 + A
h1 := h1 + B
h2 := h2 + C
h3 := h3 + D
wobei Ft eine funktion ist, die für 4 wertebreiche (verschiedene stufen) einzeln definiert ist:
Ft(x,y,z):=(x^y)v((-,x)^z) für 0 Ft(x,y,z):=(x^y)v(x^z)v(y^z) für 16 Ft(x,y,z):=x+y+z (kein plus, sondern skalarprodukt, wenn ich mich recht erinnere) für 32 Ft(x,y,z):=y+(xv(-;z)) (wieder das skalarprodukt) für 48 und Kt sind Konstanten, abhängig von der stelle des algorithmus die über:
Kt:=|sin(t)|*230
definiert sind.
grundgedanke von md5 ist, daß es möglichst unwahrscheinlich ist, zwei grundgesamtheiten an daten zu finden, die den selben hashwert besitzen, der hashwert also möglichst speziell und kennzeichnend für die date ist, und daß es unmöglich ist mit anderen als brute force methoden aus dem hashwert und der kenntnis des algorithmus das urbild der daten wieder herzustellen.
nun mal ein ganz banales beispiel. du hast die datenmenge:
12345678 und willst daraus eine prüfsumme erstellen. du wendest also einen algorithmus auf diese datenmenge an, hier mal als beispiel einen ganz banalen, die quersumme:
1+2+3+4+5+6+7+8=36
dies ist allerdings ziemlich unsicher, da sich mit einfachen mitteln unzählige urbilder erzeugen lassen, die den selben hashwert haben, man muß den algorithmus also verfeinern:
aufteilen in datenblöcke:
1 2
3 4
5 6
7 8
einzelne quersummen bilden:
3 7 11 15
1 und 3 addieren :14
2 und 4 addieren :22
1 und 4 addieren :18
2 ud 3 addieren :18
die zahlen jeweils mit einer konstanten multipilieren und anschließen addieren.
jetzt wird es schon schwerer, einen 2. datensatz herzuführen, der genau den selben hashwert besitzt (was ich vergessenhabe ist, daß auch die größe der ursprünglichen datenmenge mt einbezogen wird).
es wird allerdings auch immer schwerer, die urprungsdaten aus dem errechneten hashwert zu ermitteln (was auch nicht sinn ist).
wenn nun allerdings die daten übermittelt werden und dazu ihr hashwert und die daten werden bei der übermittlung beschädigt, so stimmen grundmenge und hash nicht mehr überein, es steht also fest, daß die ursprungsdaten nicht mehr korrekt sind.
ich hoffe die erklärung bringt dir was, sie ist leider auch ziemlich unprofessionell und ich hoffe nciht allzu verkehrt ;o)
Weißt Du das alles auswendig?
Oder wo hasst Du das "geklaut"? ;-)
CU Borlander
natürlich geklaut, wozu sitzt man denn an ner uni ;o)
@ xafford: gibt es eigentlich etwas das du nicht kannst?? ;-D
Und ueberprueft werden die mit:
md5sum (Datei)
Ich weiss allerdings nicht, ob Windows auch diesen Befehl kennt.
Bye, Klaus
Damit schon:
http://www.md5summer.org/
Gruß FreddyK.
Über Kommandozeile oder als eigenes Programm gibt es das nicht unter Windows. In der WIN32-API sind aber entsprechende Befehle vorhanden.
CU Borlander
hi leute!
vielen dank für die mühe.
ich hab zwar nicht viel kapiert, aber immerhin weiß ich jetzt wie man mit diesen md5 summen umgeht und wozu sie da sind.
thx
@borlander:
"in der Win32API sind entsprechende befehle vorhanden"???
und wie komme ich daran?
>und wie komme ich daran?
Du solltest eigentlich mit jeder Entwicklungsumgebung für Windows Zugriff auf die API haben.
Welche Entwicklungsumgebung nutzt Du denn?
CU Borlander
"entwicklungsumgebung"???
z.b. microsoft visual studio, borland Jbuilder u.a...
im prinzip das, was frontpage und dreamweaver für webseiten sind, nur für die system-programmierung.
@xafford, weltklasse erklärt!!!!!
gruss ludwig