【发布时间】:2019-05-21 08:40:33
【问题描述】:
我有一个 Hex 数组,但总是被 binascii.crc32() 视为“str”。
例如:data = ['aa', 'bb', 'cc'].
这是用于框架构建,以便将其放入可由 Wireshark 以特定格式打开的 txt 文件(这里不是问题,这工作正常)。
如文档所示:
print(binascii.crc32(b"hello world")) 有效。
我尝试使用 bin() 将数据转换为二进制文件
data = ['10101010', '10111011', '11001100']
但是它从来没有被视为二进制。
我尝试使用 bytes() 方法对其进行转换,但只能再次将其转换为 ASCII。
def toBin(data):
data2=[]
for iBcl in range (1,len(data)):
if iBcl%2!=0:
binary=bin(int(data[iBcl-1]+data[iBcl],16))[2:]
data2.append(binary)
print(data2)
return data2
data="aabbcc"
data2=toBin(data)
print(binascii.crc32(data2[0]+data2[1]+data2[2]))
根据在线 CRC32 计算器,结果应该是
0xBE4DF84C 但我收到以下错误:
TypeError: a bytes-like object is required, not 'str'
我没有使用 bytes() 方法得到错误,但是 CRC32 是根据 ASCII 字符计算的,这给了我不正确的 crc。
【问题讨论】:
标签: python python-3.x crc32