CRC Checksumme

Konsumierer

Mitglied
Nabend,

habe 2 Binärdateien, über deren Inhalt eine Checksumme gebildet wird.
Die eine Datei unterscheidet sich an genau 4 Bytes und sind jeweils das letze Byte an einem 32bit Integer.

Beispielhaft so:

Datei1: ... - FF FF FF F0 - FF FF FF F0 - FF FF FF F0 - FF FF FF F0 - ...
Datei2: ... - FF FF FF F1 - FF FF FF F1 - FF FF FF F1 - FF FF FF F1 - ...

Mein Checksummen Algorithmus verknüpft UINT32 Werte mit XOR.
Ist es möglich, dass diese Dateien dieselbe Checksumme haben?
 
Äh, probiers aus?

Ja, das kann bei allen Checksummen passieren, dass dir zwei verschiedene Dateien dieselbe Checksumme zurückgeben. (Wäre ja sonst eine unglaublich geile Komprimiermethode, einfach aus der Datei einen 32bit-Wert rausrechnen, fertig).

Wenn da dasselbe rauskommt, hat dein Algorithmus für den Fall eben eine Schwachstelle. Wenn du einfach ein bisschen rumexperimentierst, schaffst du es bestimmt, da unterschiedliche Checksummen rauszukriegen. Zähle die Anzahl der gesetzten Bits oder die Blöcke von gesetzten ununterbrochenen Bits. Sei kreativ :)

Oder benutz doch einen der offizielen CRCs.
 
Nene, die Checksummenbildung muss auf jeden Fall dieselbe bleiben.

Es ist auch nicht schlimm, wenn die Checksummen gleich sind, ich wollte mich nur vergewissern, dass das passieren kann. Hätte ja sein können, dass mein Programm die Checksumme nicht von der kompletten Datei bildet.

Danke!
 
Zurück