Различия в хеше MD5 между Python и другими файловыми хешами - PullRequest
1 голос
/ 25 мая 2010

Я немного программировал на Python (все еще n00b) и наткнулся на что-то странное. Я сделал небольшую программу, чтобы найти MD5 хэш имени файла, переданного ему в командной строке. Я использовал функцию, которую нашел здесь на SO. Когда я запустил его для файла, я получил хэш "58a ... 113". Но когда я запустил Microsoft FCIV или md5sum.py в \ Python26 \ Tools \ Scripts \, я получил другой хэш, "591 ... ae6". Фактическая часть хеширования md5sum.py в скриптах равна

m = md5.new()
while 1:
    data = fp.read(bufsize)
    if not data:
        break
    m.update(data)
out.write('%s %s\n' % (m.hexdigest(), filename))

Это выглядит функционально идентично коду в функции, приведенной в другом ответе ... Что мне не хватает? (Это моя первая публикация в stackoverflow, пожалуйста, дайте мне знать, если я делаю это неправильно.)

1 Ответ

8 голосов
/ 25 мая 2010

Уже разрешено в комментариях, но на случай, если кто-то захочет дать мне очки ...;)

Откройте ваш файл в двоичном режиме!

f = open(path, 'rb')
...