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