Соотношение, которое вы описываете, более вероятно, будет верным для некоторых примитивных алгоритмов xor или аддитивных контрольных сумм.

кольких местах я читал, что crc32 является аддитивным и так: CRC (A xor B) = CRC (A) xor CRC (B).

Вышеупомянутое утверждение было опровергнуто следующим кодом, который я написал:

import zlib
def crc32(data):
        return zlib.crc32(data) & 0xffffffff

print crc32(chr(ord("A") ^ ord("B")))
print crc32("A") ^ crc32("B")

Выход программы:

1259060791
2567524794

Может ли кто-нибудь предоставить правильный код, подтверждающий эту теорию, или указать мне, где я потерпел неудачу?

Ответы на вопрос(4)

Ваш ответ на вопрос