了解使用内置函数进行CRC32计算的最简单方法是zlib。例如:
import zlib
zlib.crc32('hello-world')
然而,如果我有一个场景,我想从文件中读取一个32位字(0x89abcdef(,而该文件包含数百万个32位的字,该怎么办?
如果我一行一行地读取它们,我如何保留上一个计算结果,并使用它继续下一行CRC32计算,直到我得到最终计算结果?
此外,我不确定另一种方法是简单地将这几百万行合并为一个超长字,然后将其输入zlib crc32函数?
实现这一点的最佳方式是哪一种?
Python的zlib.ccr32((有一个可选的第二个参数,它是正在运行的CRC-32。您可以计算一系列块的CRC,如下所示:
crc = zlib.crc32(chunk1, 0)
crc = zlib.crc32(chunk2, crc)
...
crc = zlib.crc32(chunkn, crc)
现在CCD_ 1是chunk1
到chunkn
的级联的CRC-32。