У меня есть то, что должно быть массивом Hex, но всегда рассматривается как 'str' в binascii.crc32 ().
В качестве примера: data = ['aa', 'bb', 'cc'].
Это для построения фрейма, чтобы поместить его в текстовый файл, открываемый Wireshark в определенном формате (здесь проблема не в этом, все работает отлично).
Как показано в документации:
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.