У меня есть приложение 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()
Любые идеи или предложения ценятся.
Измените open(filePath)
на open(filePath, 'rb')
, где b
означает бинарный режим. В настоящее время вы открываете файл в текстовом режиме, что может вызвать проблемы с переносимостью.
проверьте, используют ли два файла одинаковую кодировку и окончания строк