Python CRC32 连续计算

圆周率

了解使用内置函数进行 CRC32 计算的最简单方法是 zlib。例如:

import zlib
zlib.crc32('hello-world')

但是,如果我想从文件中读取 32 位字 (0x89abcdef) 并且该文件包含数百万个 32 位字,该怎么办?

如果我一行一行地读取它们,我如何保留之前的计算结果并使用它来继续下一行的 CRC32 计算,直到我得到最终的计算结果?

另外,我不确定另一种方法是简单地将这几百万行合并到一个超长单词中,然后将其输入 zlib crc32 函数?

哪一种是实现这一目标的最佳方法?

马克·阿德勒

Python 的zlib.crc32()有一个可选的第二个参数,它是正在运行的 CRC-32。您可以像这样计算一系列块的 CRC:

crc = zlib.crc32(chunk1, 0)
crc = zlib.crc32(chunk2, crc)
...
crc = zlib.crc32(chunkn, crc)

现在crcchunk1通过串联的CRC-32 chunkn

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章