W tym artykule dowiesz się, jak znaleźć skrót pliku i go wyświetlić.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:
- Funkcje Pythona
- Funkcje zdefiniowane przez użytkownika w Pythonie
- We / wy pliku Python
Funkcje skrótu pobierają dowolną ilość danych i zwracają ciąg bitów o stałej długości. Wynik funkcji nazywany jest komunikatem podsumowującym.
Są szeroko stosowane w kryptografii do celów uwierzytelniania. Istnieje wiele funkcji mieszających, takich jak MD5, SHA-1 itp. Odwiedź tę stronę, aby dowiedzieć się więcej o funkcjach mieszających w kryptografii.
W tym przykładzie zilustrujemy, jak haszować plik. Użyjemy algorytmu haszującego SHA-1. Skrót SHA-1 ma długość 160 bitów.
Nie dostarczamy danych z pliku naraz, ponieważ niektóre pliki są bardzo duże, aby zmieścić się w pamięci naraz. Podzielenie pliku na małe fragmenty sprawi, że pamięć procesu będzie wydajna.
Kod źródłowy do znalezienia skrótu
# 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)
Wynik
633d7356947eec543c50b76a1852f92427f4dca9
W tym programie otwieramy plik w trybie binarnym. W hashlib
module dostępne są funkcje skrótu . Wykonujemy pętlę do końca pliku za pomocą while
pętli. Po osiągnięciu końca otrzymujemy pusty obiekt bajtów.
W każdej iteracji odczytujemy z pliku tylko 1024 bajty (wartość tę można zmienić zgodnie z naszym życzeniem) i aktualizujemy funkcję haszującą.
Na koniec zwracamy skrót wiadomości w reprezentacji szesnastkowej przy użyciu hexdigest()
metody.