CRC - Python - 如何从字符串计算 JAMCRC 十进制数

CRC - Python - How to calculate JAMCRC decimal number from string

我需要根据 Python 3 中的字符串计算 CRC-32/JAMCRC 十进制数。 我该怎么做? 例如,此网页执行此操作:https://www.crccalc.com/ - 对于 'hello-world',它打印 1311505828。 我想要一个执行完全相同计算的脚本。 我已经尝试过使用 zlib.crc32 和 binascii.crc32 但它们 'hello-world' 的结果是 2983461467.

要计算 CRC-32/JAMCRC,您可以简单地执行标准 CRC-32 的按位非运算(在您的情况下,'hello-world' 的 CRC-32 是 2983461467)。但是您不能简单地使用 ~ 运算符,因为它适用于有符号整数(请参阅 )。相反,你首先需要一个减法:

import zlib
x = b'hello-world'
crc32_jamcrc = int("0b"+"1"*32, 2) - zlib.crc32(x) # 1311505828