Я пытаюсь проверить два файла, загруженных с сервера.Первый содержит данные, а второй - контрольную сумму хеша MD5.
Я создал функцию, которая возвращает hexdigest из файла данных следующим образом:
def md5(fileName):
"""Compute md5 hash of the specified file"""
try:
fileHandle = open(fileName, "rb")
except IOError:
print ("Unable to open the file in readmode: [0]", fileName)
return
m5Hash = hashlib.md5()
while True:
data = fileHandle.read(8192)
if not data:
break
m5Hash.update(data)
fileHandle.close()
return m5Hash.hexdigest()
Я сравниваю файлы, используя следующее:
file = "/Volumes/Mac/dataFile.tbz"
fileHash = md5(file)
hashFile = "/Volumes/Mac/hashFile.tbz.md5"
fileHandle = open(hashFile, "rb")
fileHandleData = fileHandle.read()
if fileHash == fileHandleData:
print ("Good")
else:
print ("Bad")
Сравнение файловне удается, поэтому я распечатал fileHash
и fileHandleData
и получаю следующее:
[0] b'MD5 (hashFile.tbz) = b60d684ab4a2570253961c2c2ad7b14c\n'
[0] b60d684ab4a2570253961c2c2ad7b14c
Из приведенного выше значения хеша идентичны.Почему сравнение хэшей не удается?Я новичок в Python и использую Python 3.2.Есть предложения?
Спасибо.