В этой статье вы научитесь находить хэш файла и отображать его.
Чтобы понять этот пример, вы должны знать следующие темы программирования Python:
- Функции Python
- Пользовательские функции Python
- Ввод-вывод файла Python
Хеш-функции принимают произвольный объем данных и возвращают битовую строку фиксированной длины. Вывод функции называется дайджест-сообщением.
Они широко используются в криптографии для целей аутентификации. Существует множество хеш-функций, таких как MD5, SHA-1 и т. Д. Обратитесь к этой странице, чтобы узнать больше о хэш-функциях в криптографии.
В этом примере мы покажем, как хэшировать файл. Мы будем использовать алгоритм хеширования SHA-1. Дайджест SHA-1 имеет длину 160 бит.
Мы не загружаем данные из файла сразу, потому что некоторые файлы очень большие и не помещаются в памяти сразу. Разделение файла на небольшие части сделает память процесса более эффективной.
Исходный код для поиска хэша
# Python rogram to find the SHA-1 message digest of a file # importing the hashlib module import hashlib def hash_file(filename): """"This function returns the SHA-1 hash of the file passed into it""" # make a hash object h = hashlib.sha1() # open file for reading in binary mode with open(filename,'rb') as file: # loop till the end of the file chunk = 0 while chunk != b'': # read only 1024 bytes at a time chunk = file.read(1024) h.update(chunk) # return the hex representation of digest return h.hexdigest() message = hash_file("track1.mp3") print(message)
Вывод
633d7356947eec543c50b76a1852f92427f4dca9
В этой программе мы открываем файл в двоичном режиме. В hashlib
модуле доступны хеш-функции . Мы зацикливаемся до конца файла с помощью while
цикла. Дойдя до конца, мы получаем пустой объект bytes.
На каждой итерации мы читаем из файла только 1024 байта (это значение может быть изменено по нашему желанию) и обновляем хеш-функцию.
Наконец, мы возвращаем дайджест сообщения в шестнадцатеричном представлении с помощью hexdigest()
метода.