使用 crcmod 在 Python 中生成校验和
Using crcmod to generate a checksum in Python
我正在尝试从 Python 中的自定义 crcmod
中获得我期望的结果 3.
我目前有以下
# poly, initCrc, rev, xorOut
crc32 = mkCrcFun(0x104c11db7, 0xFFFFFFFF, False, 0xFFFFFFFF)
print(hex(crc32(b'\x0f\x0f\x0f\x0f')))
这会打印 0x94913aa6
。但是,我希望看到 0x5395e7dd
,我使用以下设置计算 here:
- CRC 宽度 - CRC-32
- CRC 参数化 - 自定义
- 反映的输入 - 未选中
- 反映的结果 - 未检查
- 多项式 -
0x4c11db7
- 初始值 -
0xFFFFFFFF
- 最终异或值 -
0xFFFFFFFF
- 输入 - 字节
0f0f0f0f
我确定该网站正在生成预期的校验和。我就是无法 crcmod
终生复制它。有什么见解吗?
使用mkCrcFun(0x104c11db7, 0, False, 0xFFFFFFFF)
.
这是因为“初始值”有不止一种含义。在crcmod
的情况下,表示初始寄存器值。在 CRC 网页的情况下,它表示返回的 CRC 的初始值。在后一种情况下,初始寄存器值是初始 CRC 值与最终异或值异或。
我正在尝试从 Python 中的自定义 crcmod
中获得我期望的结果 3.
我目前有以下
# poly, initCrc, rev, xorOut
crc32 = mkCrcFun(0x104c11db7, 0xFFFFFFFF, False, 0xFFFFFFFF)
print(hex(crc32(b'\x0f\x0f\x0f\x0f')))
这会打印 0x94913aa6
。但是,我希望看到 0x5395e7dd
,我使用以下设置计算 here:
- CRC 宽度 - CRC-32
- CRC 参数化 - 自定义
- 反映的输入 - 未选中
- 反映的结果 - 未检查
- 多项式 -
0x4c11db7
- 初始值 -
0xFFFFFFFF
- 最终异或值 -
0xFFFFFFFF
- 输入 - 字节
0f0f0f0f
我确定该网站正在生成预期的校验和。我就是无法 crcmod
终生复制它。有什么见解吗?
使用mkCrcFun(0x104c11db7, 0, False, 0xFFFFFFFF)
.
这是因为“初始值”有不止一种含义。在crcmod
的情况下,表示初始寄存器值。在 CRC 网页的情况下,它表示返回的 CRC 的初始值。在后一种情况下,初始寄存器值是初始 CRC 值与最终异或值异或。