Skip to main content

用于计算和验证各种 CRC 校验和的库和 CLI

项目描述

概述

连体工作服 pypi 包可用

用于计算和验证 CRC 校验和的库和 CLI 工具。

提供的 CRC 算法的默认配置:

CRC8 CRC16 CRC32 CRC64
CCITT CCITT CRC32 CRC64
AUTOSAR 全球通 AUTOSAR
SAJ1850 现场总线 压缩包2
蓝牙 POSIX
MAXIM-DOW

要求

  • Python 3.7 及更新版本

例子

计算 crc 使用CrcCalculator

from crc import CrcCalculator, Crc8
data = bytes([0, 1, 2, 3, 4, 5 ])
expected_checksum = 0xBC
crc_calculator = CrcCalculator(Crc8.CCITT)

checksum = crc_calculator.calculate_checksum(data)

assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

通过使用基于表格的计算来加速计算CrcCalculator

from crc import CrcCalculator, Crc8

data = bytes([0, 1, 2, 3, 4, 5 ])
expected_checksum = 0xBC
use_table = True
crc_calculator = CrcCalculator(Crc8.CCITT, use_table)

checksum = crc_calculator.calculate_checksum(data)

assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

为 crc 计算创建自定义 crc 配置

from crc import CrcCalculator, Configuration

data = bytes([0, 1, 2, 3, 4, 5 ])
expected_checksum = 0xBC

width = 8
poly=0x07
init_value=0x00
final_xor_value=0x00
reverse_input=False
reverse_output=False

configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output)

use_table = True
crc_calculator = CrcCalculator(configuration, use_table)

checksum = crc_calculator.calculate_checksum(data)
assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

使用基本的 crc 寄存器

from crc import Crc8, TableBasedCrcRegister, CrcRegister

data = bytes([0, 1, 2, 3, 4, 5 ])
expected_checksum = 0xBC

reg = CrcRegister(Crc8.CCITT)
table_reg = TableBasedCrcRegister(Crc8.CCITT)

reg.init()
reg.update(data)
assert expected_checksum == reg.digest()

table_reg.init()
table_reg.update(data)
assert expected_checksum == table_reg.digest()

命令行工具

crc --help

子命令

桌子

预计算 crc 查找表的子命令。另请参阅crc table --help

校验和

计算输入文件的 crc 校验和的子命令。另请参阅crc checksum --help

参考资料和资源

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

crc-1.2.0.tar.gz (7.1 kB 查看哈希)

已上传 source

内置分布

crc-1.2.0-py3-none-any.whl (7.0 kB 查看哈希

已上传 py3