Seite 1 von 1

[gelöst] Hashing einer Binary/Text Datei

Verfasst: 4. September 2006 20:05
von Arbaal
Guten Abend,

Ich sitze derzeit an einen schwerwiegenden Problem. Ich habe ein Programm geschrieben, welches von einer Datei eine Prüfsumme errechnet. Leider ist es nur in der Lage Textdatein (egal welcher größe) richtig zu hashen. Binärdatein werden falsch gehashed. Ich füge einen Link zum Quelltext an und zeige den relewanten Teil zum Auslesen der Datei:
http://yutsu.de/qanidb.tar.gz

Code: Alles auswählen

	
QByteArray buff = file.read( len-pos );
unsigned char* data = (unsigned char*) buff.data();
MD4Update(&context,(unsigned char*)data,strlen((const char*)data));
Weiß vielleicht jemand die Ursache des Problems?

MFG
Nils Hasenbanck

Re: Hashing einer Binary/Text Datei

Verfasst: 4. September 2006 20:34
von Christian81
Arbaal hat geschrieben: Weiß vielleicht jemand die Ursache des Problems?
Ja:

Code: Alles auswählen

strlen((const char*)data)

Verfasst: 4. September 2006 20:46
von Arbaal
Vielen Dank! Manchmal sieht man den Wald voller Bäume nicht mehr ....

Code: Alles auswählen

pos = len-pos;
QByteArray buff = file.read( pos );
unsigned char* data = (unsigned char*) buff.data();
MD4Update(&context,(unsigned char*)data,pos);

Verfasst: 4. September 2006 20:53
von Christian81
Besser: buff.size()

Verfasst: 4. September 2006 21:23
von Arbaal
In beiden Anwendungsfällen weiß ich jedoch wie große der auszulesende Bereich ist. Einmal ist es die Buffer größe und das andere mal der Rest. Jedesmal die buffer.size() auszulesen erscheint mir hier unnötig.