Подтвердить что ты не робот

Python - Hashlib MD5 отличается от linux/windows

У меня есть приложение python, в котором я создаю пакеты в окнах, которые будут использоваться, а затем сравниваются в приложении linux python. Я создаю md5 для файла в окнах, которые будут проверяться позже в linux. Проблема в том, что один и тот же код в одном файле дает разные результаты хеша Md5 в каждой среде. Ниже приведен метод, который я использую для вычисления Md5. (Это один и тот же код на каждом конце, и я использую Python 2.6.5 для сред Windows/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()

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

4b9b3361

Ответ 1

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

Ответ 2

проверьте, используют ли оба файла одну и ту же кодировку и линименты