![]() |
DEC 5.1 CRC-32 vs WinRAR CRC-32
Moin,
ich nutze Hagens CRC-Unit um einen CRC-Check in mein Programm einzubauen:
Delphi-Quellcode:
Das funktioniert auch bestens, nur leider ist der Ergebniswert dieser Funktion völlig anders als die CRC32-Werte, die mir WinRAR anzeigt. Eigentlich dachte ich ein CRC-Check wäre eindeutig, oder mache ich irgendwo etwas falsch? :gruebel:
function GetCRC32Check(FileName:String): String;
var FS: TFileStream; CRC32: Cardinal; begin FS := TFileStream.Create(FileName, fmOpenRead); try CRC32 := CRCCalcEx(CRC_32CCITT, FS.Read); finally FS.Free; end; result:=IntToHex(CRC32, 4); end; |
Re: DEC 5.1 CRC-32 vs WinRAR CRC-32
Es gibt nicht einen CRC-Wert. Das Ergebnis des CRC-Hashverfahrens hängt vom verwendeten Startwert, XOR-Endwert und Polynom ab. Das heißt du musst herausfinden wie der CRC-Wert bei WinRar ermittelt wird und diese Parameter dann der DEC übergeben.
|
Re: DEC 5.1 CRC-32 vs WinRAR CRC-32
Tatsächlich? Ich dachte ein CRC32-Check wäre wie ein MD5-Hash einmalig und eindeutig...
Aber ok, dann ist ja alles ok, danke. :-) |
Re: DEC 5.1 CRC-32 vs WinRAR CRC-32
Probier mal folgendes:
|
Re: DEC 5.1 CRC-32 vs WinRAR CRC-32
Delphi-Quellcode:
1.) das Polynom $EDB88320 ist nicht das CCITT Polynom
function GetCRC32Check(FileName:String): String;
function Swap(Value: Cardinal): Cardinal; asm BSWAP EAX end; var FS: TFileStream; CRC: TCRCDef; begin FS := TFileStream.Create(FileName, fmOpenRead); try CRCSetup(CRC, $EDB88320, 32, $FFFFFFFF, $FFFFFFFF, True/False); CRCCodeEx(CRC, FS.Read); Result := IntToHex(Swap(CRCDone(CRC)), 4); finally FS.Free; end; end; 2.) im obigen CRCSetup() den True/False Parameter testen 3.) das Swap() eventuell weglassen, ich meine das die Big Endian benutzen 4.) ob das Polynom $EDB88320 richtig ist weis ich allerdings nicht Gruß Hagen |
Re: DEC 5.1 CRC-32 vs WinRAR CRC-32
Danke euch beiden, ich werde das später mal testen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr. |
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-2025 by Thomas Breitkreuz