Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   md5 hash einer Datei Lazarus (https://www.delphipraxis.net/161908-md5-hash-einer-datei-lazarus.html)

1234567890987654321 27. Jul 2011 01:59

md5 hash einer Datei Lazarus
 
Hallo.

Hat jmd. einen Code-Schnipsel, der mir aus einer Datei einen Hash-Wert generiert.
Ich habe es schon mit der Md5-Unit probiert, aber da kam immer ein falscher Hash raus. (MD5Print(MD5String('test.exe'));).

Wenn ich die test.exe zu http://www.fileformat.info/tool/hash.htm hochlade, gibt dieses ein ganz anderen Hash aus.

Wie ermittle ich nun den richtigen Hash?

Danke fürs lesen :-)

himitsu 27. Jul 2011 03:12

AW: md5 hash einer Datei Lazarus
 
MD5String berechnet von dem übergebenem String den Hash ... die Funktion heißt nicht umsonst MD5String. :wink:
Du brauchst also eine VVariante, welche von einem Buffer, Stream oder direkt von der Datei liest.


Zitat:

Ich habe es schon mit der Md5-Unit probiert
Toll, von solchen Units gibt es tausende...
Mit welcher also?

PS: Über die Forensuche sollte sich eigentlich was finden lassen.

Luckie 27. Jul 2011 03:16

AW: md5 hash einer Datei Lazarus
 
Und etwas Code, wir du die Unit angewandt hast, wäre ganz gut.

marcoX 27. Jul 2011 03:16

AW: md5 hash einer Datei Lazarus
 
Ich mutiere heute wohl zu deinem Helfer ;)

http://www.cityinthesky.co.uk/opensource/dcpcrypt

Das Package für Delphi 6 mit dem Assistenten in ein Lazarus-Package umwandeln und DCPReg als "Registriere Unit" anklicken. Fertig! Beispiele liefert der Autor genug mit

CCRDude 27. Jul 2011 07:45

AW: md5 hash einer Datei Lazarus
 
Dafür braucht's kein DCrypt. Die Unit MD5, die mit Lazarus (oder direkt FPC?) kommt, hat ja alles. Nur muss man halt MD5File() statt MD5String aufrufen :)

marcoX 27. Jul 2011 23:36

AW: md5 hash einer Datei Lazarus
 
Zitat:

Zitat von CCRDude (Beitrag 1113744)
Dafür braucht's kein DCrypt. Die Unit MD5, die mit Lazarus (oder direkt FPC?) kommt, hat ja alles. Nur muss man halt MD5File() statt MD5String aufrufen :)

Brauchts sicher nicht. Aber Dcrypt ist sehr praktisch und kann neben MD5 noch eine Menge weitere Hashes ;)

himitsu 27. Jul 2011 23:45

AW: md5 hash einer Datei Lazarus
 
Unter Windows nutze ich für meine wenigen Hashs direkt die WinAPIs für MD5 (wird vorallem für GUIDs verwendet) und SHA1
und eine eigene winzige Implementation für CRC32 ... mehr braucht man doch selten.

Luckie 27. Jul 2011 23:59

AW: md5 hash einer Datei Lazarus
 
Zitat:

Zitat von himitsu (Beitrag 1113891)
die WinAPIs für MD5 (wird vorallem für GUIDs verwendet) und SHA1

Welche wären das?

jaenicke 28. Jul 2011 08:10

AW: md5 hash einer Datei Lazarus
 
Das ist in der Cryptography API drin:
http://msdn.microsoft.com/en-us/library/aa380255.aspx

CryptAquireContext + CryptCreateHash mit CALG_MD5 sollten genügen. Die Funktionen gibt es auch noch einmal mit CP statt Crypt, auf dem Handy kann ich grad schlecht den Unterschied sehen.

CCRDude 28. Jul 2011 10:06

AW: md5 hash einer Datei Lazarus
 
@himitsu/jaenicke: aber gerade jemand, der dick und fett darauf hinweist, daß er Lazarus verwendet, hält eventuell platformübergreifenden Code für sinnvoller ;)

@marcoX: natürlich kann man alles einbauen, was irgendwie praktisch ist. Nur: was bringt es konkret? Geschwindigkeit ist das einzige, was mir da einfällt. Da ist DCrypt deutlich schneller als die MD5.pas von FPC (zumindest in Delphi getestest :oops: ). Aber: solange is sich nicht um sehr große Dateien handelt, ist DEC nochmal um den Faktor zwei schneller als DCrypt. Zumindest in meinen Tests.

Solange es nicht um wirklich große Datenmengen geht, würde ich ein Projekt nicht mit zusätzlichen Abhängigkeiten verkomplizieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz