Найти тему

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


Для правильного и эффективного вычисления хэш-значения файла (в Python 3):

1) Откройте файл в двоичном режиме (т.е. Добавьте 'b'в файловый режим), чтобы избежать проблем с кодировкой символов и окончанием строки.

2) Не считывайте полный файл в память, так как это пустая трата памяти. Вместо этого последовательно считывайте его блок за блоком и обновляйте хэш для каждого блока.

3) Исключите двойную буферизацию, т.е. Не используйте буферизованный IO, потому что мы уже используем оптимальный размер блока.

4) Используйте readinto(), чтобы избежать переполнения буфера.

Пример хеширования строки:

import hashlib

hash_object = hashlib.md5(b'Hello World')

print(hash_object.hexdigest())

Обратите внимание, что "b" предшествует литералу строки, происходит конвертация строки в байты, оттого, что функция хеширования принимает только последовательность байтов в качестве параметра. В предыдущей версии библиотеки принимался литерал строки.

Не забудьте закодировать строку в последовательности байтов.
Хэширование файлов в Python. Хэш — это функция, которая преобразует последовательность байтов переменной длины в последовательность фиксированной длины.
1 минута
585 читали