用于计算和验证各种 CRC 校验和的库和 CLI
项目描述
概述
用于计算和验证 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
查看哈希)
内置分布
crc-1.2.0-py3-none-any.whl
(7.0 kB
查看哈希)