PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : checksummen erzeugen



TheDodger
10-05-2003, 09:30
Mahlzeit ...

Kann mir jemand mal ganz kurz erklären, wie md5sum funktioniert?
Ich brauche eine ähnliche Art, um eine md5 Checksumme von meinem Programm zu erzeugen und damit externe md5 summen zu verifizieren ... und das ganze irgendwie platformunabhängig ... also kann ich nicht md5sum via system() aufrufen ...

anda_skoa
10-05-2003, 09:50
Schau mal hier
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

Ciao,
_

TheDodger
11-05-2003, 17:53
Jupp, danke, das hat mir schon sehr viel weitergeholfen! :)

Ich habe mir die C++ Version genommen und ein MD5_file() aufgerufen ...
Allerdings sind die Prüfsummen, die md5sum und diese Klasse liefern unterschiedlich. :(

maceop
11-05-2003, 19:16
warum holst du nicht einfach die sources von md5sum und benutzt die funktionen , bzw. schreibst sie etwas um ?

mfg
maceop

arthur
11-05-2003, 19:32
die prüffsummen können sich nicht unterscheiden,
sehr wahrscheinlich hast du irgenwo einen kleinen fehler "eingebaut" ;)
vielleicht in deinem test program ?

gruss
Arthur

peschmae
12-05-2003, 11:25
sie können schon :D

sollten aber eher nicht

MfG Peschmä

TheDodger
19-05-2003, 10:09
doch, doch, die summen sind unterschiedlich ...
ich habe mir jetzt extra dafür ein kompilierten schrott für windows besorgt um das zu verifizieren ...



linux:
heino:/home/avupdate # md5sum avupdate.zip
2a505017755fcc4f3893f80d49181991 avupdate.zip

windows:
C:\tmp\AVUPDA~1>md5 avupdate.zip
MD5 (avupdate.zip) = cbc67afd585be868068f2369db3b8afd

C:\tmp\AVUPDA~1>md5sums avupdate.zip

MD5sums 1.1 freeware for Win9x/ME/NT/2000/XP+
Copyright (C) 2001-2002 Jem Berkes - http://www.pc-tools.net/
Type md5sums -h for help

[Path] / filename MD5 sum
-------------------------------------------------------------------------------
[C:\tmp\AVUPDA~1\]
avupdate.zip cbc67afd585be868068f2369db3b8afd


und das witzigste ...



linux:
heino:/home/avupdate # ll avupdate.zip
-rw-r--r-- 1 root root 4650004 May 19 11:09 avupdate.zip

windows:
C:\tmp\AVUPDA~1>dir avupdate.zip
Datenträger in Laufwerk C: ist W2K
Datenträgernummer: 353E-18FB

Verzeichnis von C:\tmp\AVUPDA~1

19.05.2003 11:05 4.667.518 avupdate.zip
1 Datei(en) 4.667.518 Bytes
0 Verzeichnis(se), 1.498.062.848 Bytes frei


Ich nehm ganz stark an, das es abhängig von der dateigröße - sprich Filesystem - abhängt.
Linux ext3, windows VFAT ...

anda_skoa
19-05-2003, 10:35
Bist du dir auch sicher, dass es die selbe Datei ist?

Das Filesystem könnte zwar die Darstellung der Größe beeinflussen, aber die Datei sollte schon gleich groß sein.

Wie sieht das aus, wenn die Datei auf einem Fat32 FS ist, dass von Linux gemountet wurde?

Ciao,
_

peschmae
19-05-2003, 12:06
vom FS kanns nicht abhängen, denn ich kriege sowohl unter Linux als auch unter ... jeweils dieselben Md5summen

auch wenn ich von meinem Home-Verzeichnis md5summen erzeuge, das ganze dann auf cd brenne und checke, gibt es meist keine Fehler, und iso9660 ist wohl wirklich ein anderes FS als reiser oder vfat

das ist wohl wirklich nicht dieselbe datei, mach mal n md5sum des files auf der fat-partition unter linux...

MfG Peschmä

nobody0
19-05-2003, 15:46
Wie Aufwendig ist eigentlich die md5sum-Berechnung?
Kann man die auf einen Microcontroller benutzen um 1 MByte/s zu überprüfen? :confused:

peschmae
19-05-2003, 17:30
kommt darauf an, wie schnell der ist

mach doch mal n cd - image auf deinem PC und schau selbst, bei mir dauern die 700 MB (PII 266) schon einige wenige Minuten

MfG Peschmä

arthur
19-05-2003, 17:41
benutzt sonst md4, der ist schneller als md5

gruss
Arthur

nobody0
19-05-2003, 18:46
Aha, danke.
Naja, zur Übertragung ist ECC ohnehin besser und es gibt ja einfache u. schnelle Algorithmen dafür.

TheDodger
20-05-2003, 06:24
Also, ich denke, ich hab den Fehler gefunden ... und irrwitzigerweise ist der nicht mal auf MD5 zurückzuführen, sondern auf die dusselige FTP Klasse, die benutzte.
Die hat mir unter Windows, das Archiv komplett zerstört ...
Jetzt brauch ich erstmal dafür wieder Ersatz ... zum k*tzen :(