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



У меня есть приложение python, в котором я создаю пакеты в windows для использования и последующего сравнения в приложении python linux. Я создаю md5 для файла в windows, который будет проверен позже в 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()


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

502   2  

2 ответов:

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

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

Comments

    Ничего не найдено.