Я пытаюсь вычислить контрольную сумму crc32 файла, но кажется, что мой код не вычисляет его правильно.CRC32 не вычисляет правильную контрольную сумму?
def crc32_checksum(directory):
file = open(directory, "r").read()
file_checksum = str(binascii.crc32(file) & 0xffffffff)
return file_checksum
Очевидно, что возвращает десятичную контрольную сумму (правильно?), Но когда я преобразовать его в шестнадцатеричный, это, кажется, не совпадает (я использую один из тех десятичных заколдовать сайты).
я получаю это как возвращение Python: 2370036543 (8D43E33F)
и контрольная сумма, что DigitalVolcano HashTool 1.1 Скачал возвращает это: (300654116) 11eb9e24
.
Я уверен, что hashtool правильный, поскольку я сравнивал контрольные суммы, используя его (и они совпадали).
У меня работает Windows.
@davidism Как это ни странно, я не думаю, что возможный дубликат действительно отвечает на этот вопрос окончательно. Возможно, этот вопрос получит более точный ответ? – BlackVegetable
Даже если это был дубликат этого вопроса (а это не так), на этот вопрос никогда не отвечали. –
И это не дубликат. Этот вопрос заключался в сравнении crc32 с неизвестным инструментом (многократно запрошенном в комментариях, но никогда не указанным), с возможными разными данными для двух разных инструментов. Это по сравнению с известным инструментом (hashtool), с очень вероятными разными данными. –