crc --- CRC 计算

crc 模块在类字节缓冲区上计算 CRC16 和 CRC32 校验和。每个函数既可以仅带 data 调用以开始一个新的 CRC,也可以带上先前的 value 以在多个缓冲区之间延续现有的 CRC。

示例:

import crc

c = crc.crc32(b"hello ")
c = crc.crc32(b"world", value=c)
print(hex(c))

函数

crc.crc16(data: bytes, *, value: int = None) int

data 上计算 CRC16 校验和,它必须是类缓冲区对象(例如 bytesbytearraymemoryview)。

如果未提供 value,则在 data 上开始一个新的 CRC16 并返回。如果提供了 value,则将其用作先前的 CRC16 状态,用 data 更新后再返回,从而允许跨多个缓冲区计算 CRC16。仅使用 value 的低 16 位。

int 形式返回所得的 CRC16。

crc.crc32(data: bytes, *, value: int = None) int

data 上计算 CRC32 校验和,它必须是类缓冲区对象(例如 bytesbytearraymemoryview)。

如果未提供 value,则在 data 上开始一个新的 CRC32 并返回。如果提供了 value,则将其用作先前的 CRC32 状态,用 data 更新后再返回,从而允许跨多个缓冲区计算 CRC32。

int 形式返回所得的 CRC32。