CRC和校验和计算库
项目描述
crccheck.crc模块实现了参数化CRC算法目录中列出的所有CRC
CRC-3/GSM, CRC-3/ROHC, CRC-4/G-704, CRC-4/INTERLAKEN, CRC-5/EPC-C1G2, CRC-5/G-704, CRC-5/USB, CRC-6/CDMA2000-A, CRC-6/CDMA2000-B, CRC-6/DARC, CRC-6/G-704, CRC-6/GSM, CRC-7/MMC, CRC-7/ROHC, CRC-7/UMTS, CRC-8/AUTOSAR, CRC-8/BLUETOOTH, CRC-8/CDMA2000, CRC-8/DARC, CRC-8/DVB-S2, CRC-8/GSM-A, CRC-8/GSM-B, CRC-8/HITAG, CRC-8/I-432-1, CRC-8/I-CODE, CRC-8/LTE, CRC-8/MAXIM-DOW, CRC-8/MIFARE-MAD, CRC-8/NRSC-5, CRC-8/OPENSAFETY, CRC-8/ROHC, CRC-8/SAE-J1850, CRC-8/SMBUS, CRC-8/TECH-3250, CRC-8/WCDMA, CRC-10/ATM, CRC-10/CDMA2000, CRC-10/GSM, CRC-11/FLEXRAY, CRC-11/UMTS, CRC-12/CDMA2000, CRC-12/DECT, CRC-12/GSM, CRC-12/UMTS, CRC-13/BBC, CRC-14/DARC, CRC-14/GSM, CRC-15/CAN, CRC-15/MPT1327, CRC-16/ARC, CRC-16/CDMA2000, CRC-16/CMS, CRC-16/DDS-110, CRC-16/DECT-R, CRC-16/DECT-X, CRC-16/DNP, CRC-16/EN-13757, CRC-16/GENIBUS, CRC-16/GSM, CRC-16/IBM-3740, CRC-16/IBM-SDLC, CRC-16/ISO-IEC-14443-3-A, CRC-16/KERMIT, CRC-16/LJ1200, CRC-16/M17, CRC-16/MAXIM-DOW, CRC-16/MCRF4XX, CRC-16/MODBUS, CRC-16/NRSC-5, CRC-16/OPENSAFETY-A, CRC-16/OPENSAFETY-B, CRC-16/PROFIBUS, CRC-16/RIELLO, CRC-16/SPI-FUJITSU, CRC-16/T10-DIF, CRC-16/TELEDISK, CRC-16/TMS37157, CRC-16/UMTS, CRC-16/USB, CRC-16/XMODEM, CRC-17/CAN-FD, CRC-21/CAN-FD, CRC-24/BLE, CRC-24/FLEXRAY-A, CRC-24/FLEXRAY-B, CRC-24/INTERLAKEN, CRC-24/LTE-A, CRC-24/LTE-B, CRC-24/OPENPGP, CRC-24/OS-9, CRC-30/CDMA, CRC-31/PHILIPS, CRC-32/AIXM, CRC-32/AUTOSAR, CRC-32/BASE91-D, CRC-32/BZIP2, CRC-32/CD-ROM-EDC, CRC-32/CKSUM, CRC-32/ISCSI, CRC-32/ISO-HDLC, CRC-32/JAMCRC, CRC-32/MEF, CRC-32/MPEG-2, CRC-32/XFER, CRC-40/GSM, CRC-64/ECMA-182, CRC-64/GO-ISO, CRC-64/MS, CRC-64/REDIS, CRC-64/WE, CRC-64/XZ, CRC-82/DARC
对于类名,只需从上述名称中删除所有破折号和斜杠,并应用驼峰命名法,例如,“CRC-32/MPEG-2”通过 Crc32Mpeg2 实现。其他CRC可以通过提供所有必需的CRC参数来使用通用类 crccheck.crc.Crc 进行计算。
crccheck.checksum 模块实现了8位、16位和32位的加法和XOR校验和: Checksum8、Checksum16、Checksum32 和 ChecksumXor8、ChecksumXor16、ChecksumXor32
使用示例
from crccheck.crc import Crc32, CrcXmodem from crccheck.checksum import Checksum32 # Quick calculation data = bytearray.fromhex("DEADBEEF") crc = Crc32.calc(data) checksum = Checksum32.calc(data) # Procsss multiple data buffers data1 = b"Binary string" # or use .encode(..) on normal sring - Python 3 only data2 = bytes.fromhex("1234567890") # Python 3 only, use bytearray for older versions data3 = (0x0, 255, 12, 99) # Iterable which returns ints in byte range (0..255) crcinst = CrcXmodem() crcinst.process(data1) crcinst.process(data2) crcinst.process(data3[1:-1]) crcbytes = crcinst.finalbytes() crchex = crcinst.finalhex() crcint = crcinst.final()
- 许可
MIT许可协议
版权所有 (c) 2015-2022 by Martin Scharrer <martin.scharrer@web.de>
在此特此授予任何获得本软件及其相关文档文件(统称为“软件”)副本的任何人,免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许软件提供方为此目的而使用软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的任何副本或实质性部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和侵权保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,由软件或软件的使用或其他方式引起。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
crccheck-1.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5384f437de610ade5c3d8689efc80ccd1267b8c452ade83411fd8500a1024f3e |
|
MD5 | 9497da87473805033ec60b6f824d9266 |
|
BLAKE2b-256 | 50ee92daff1ca6f8c31f97afe9666efa6d43c74f7ea0415a04ba19300cefef7c |
crccheck-1.3.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 278ec53d6f417f197f7e0e29b485093d4879b0bc7a2d29b657ef8242e633b48d |
|
MD5 | 906a3414fb188909bd61ab92dc40a3c9 |
|
BLAKE2b-256 | f42f93f71642e177f0a1d1f392421e314056a2635ca3524b3c57b005cdd995bd |