item = '04010034587C1F0C6D51B6D33B78CA63C1CC7E5910006C5600000000000000'
'%08X' % (binascii.crc32(binascii.a2b_hex(item)) & 0xffffffff)
我无法让crc32给我正确的32位。我尝试了几种不同的算法。我用这段代码得到'3228F9E4',但根据另一个使用的程序,正确的crc32应该是'E42FDBEC'。多项式为'04C11DB7',初始余数为'00000000'。
如何正确计算?
答案 0 :(得分:2)
特定CRC impelmentation由多项式,可选的初始值和可能的最终XOR指定。位顺序也很重要。
binutils文档说:
计算CRC-32,32位校验和数据,从初始crc开始。这与ZIP文件校验和一致
确保使用正确的初始值作为参考实施。 (crc32
的第二个参数)