如何正确计算CRC32


item = '04010034587C1F0C6D51B6D33B78CA63C1CC7E5910006C5600000000000000'
'%08X' % (binascii.crc32(binascii.a2b_hex(item)) & 0xffffffff)

我无法让 crc32 给我正确的 32 位。我尝试了几种不同的算法。 我一直在用这段代码得到'3228F9E4',但根据使用的另一个程序,正确的crc32应该是'E42FDBEC'。 多项式是'04C11DB7',初始余数是'00000000'。

如何正确计算?

特定的 CRC 影响由多项式、可选初始值和可能的最终 XOR 指定。位顺序也很重要。

binutils文档说:

计算 CRC-32,即数据的 32 位校验和,从初始 crc 开始。这与 ZIP 文件校验和一致

确保使用正确的初始值作为参考实现。(第 2 个参数crc32(

最新更新