Python - Hashlib MD5 отличается между Linux/окнами

У меня есть приложение Python, в котором я создаю пакеты в окнах, которые будут использоваться и позже сравнены в приложении Python Linux. Я создаю md5 для файла в окнах, которые будут проверены позже в Linux. Проблема состоит в том, что тот же код того же файла дает различные результаты хеша Md5 в каждой среде. Ниже метод, который я использую для вычисления Md5. (Это - тот же код каждого конца, и я использую Python 2.6.5 для обеих сред окон/Linux), Когда я выполняю это на том же файле в различных средах, я получаю хеши md5, которые не соответствуют.

def md5_for_file(filePath):
        md5 = hashlib.md5()
        file = open(filePath)
        while True:
            data = file.read(8192)
            if not data:
                break
            md5.update(data)

        file.close()   
        return md5.hexdigest()

Любые идеи или предложения ценятся.

11
задан Tom Lerma 2 August 2010 в 18:07
поделиться

2 ответа

Измените open(filePath) на open(filePath, 'rb'), где b означает бинарный режим. В настоящее время вы открываете файл в текстовом режиме, что может вызвать проблемы с переносимостью.

23
ответ дан 3 December 2019 в 04:51
поделиться

проверьте, используют ли два файла одинаковую кодировку и окончания строк

0
ответ дан 3 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: