我想在 python 中计算一串十六进制值的 CRC32 校验和。我找到了 zlib.crc32(data) 和 binascii.crc32(data),但是我发现的所有使用这些函数的示例都将“data”作为字符串(例如“hello”)。我想将十六进制值作为数据传递并找到校验和。我试过将数据设置为十六进制值(例如 0x18329a7e),但我得到一个 TypeError: must be string or buffer, not int.当我将十六进制值设为字符串(例如'0x18329a7e')时,该函数会进行评估,但我认为它不会评估正确的校验和。任何帮助,将不胜感激。谢谢!
最佳答案
我认为您正在寻找 binascii.a2b_hex()
:
>>> binascii.crc32(binascii.a2b_hex('18329a7e'))
-1357533383