Я читаю 16 байт из бинарного буфера имени raw
:метод для чтения байтов в строку hexdigest
md5 = list(struct.unpack('16B', raw.read(16)))
Это производит следующий список:
>>> print(md5)
>>> [25, 94, 158, 89, 108, 25, 125, 20, 138, 164, 84, 137, 250, 82, 150, 202]
мне нужно постройте правильную строку md5, которую я затем смогу использовать для сравнения с любыми hexdigest()
от hashlib.md5()
В настоящее время я делаю это так:
md5 = list(struct.unpack('16B', raw.read(16)))
for i, b in enumerate(md5):
md5[i] = hex(b)
md5 = ''.join(md5).replace('0x', '')
Это работает, но я не могу помочь, но чувствую, что я что-то не хватает. Есть ли более простое преобразование между данными в буфере и последней строкой?
Примечание: Я понимаю, что у меня есть другие виды дайджестов. Но в настоящее время я заинтересован в решении проблемы для шестнадцатеричного дайджеста.
Спасибо Антти. Это идеально. –