Python md5, sha1 хэш-суммы файла

by wa   31.03.2014    23329 просмотров

На досуге понадобилось рассчитатывать на лету md5 и sha1 хэш-суммы файлов. Так как Python уже с "батарейками", было решено использовать hashlib. Получилось нечто такое.

Работает даже с большими файлами, т.к. считывает файл блоками по 8192 байта. Размер блока можно увеличить и увеличится размер расходуемой памяти. Хотя я могу ошибаться.

import hashlib


def get_hash_md5(filename):
    with open(filename, 'rb') as f:
        m = hashlib.md5()
        while True:
            data = f.read(8192)
            if not data:
                break
            m.update(data)
        return m.hexdigest()