V tomto článku se naučíte najít hash souboru a zobrazit jej.
Abychom porozuměli tomuto příkladu, měli byste znát následující témata programování v Pythonu:
- Funkce Pythonu
- Uživatelem definované funkce Pythonu
- V / V souboru Python
Funkce hash vezmou libovolné množství dat a vrátí bitový řetězec pevné délky. Výstup funkce se nazývá souhrnná zpráva.
Jsou široce používány v kryptografii pro účely ověřování. Existuje mnoho hashovacích funkcí jako MD5, SHA-1 atd. Na této stránce najdete další informace o hashovacích funkcích v kryptografii.
V tomto příkladu si ukážeme, jak zahašovat soubor. Použijeme hashovací algoritmus SHA-1. Digest SHA-1 je dlouhý 160 bitů.
Data ze souboru nepodáváme najednou, protože některé soubory jsou velmi velké, aby se vešly do paměti najednou. Rozdělení souboru na malé kousky zefektivní procesní paměť.
Zdrojový kód k nalezení hash
# 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)
Výstup
633d7356947eec543c50b76a1852f92427f4dca9
V tomto programu otevíráme soubor v binárním režimu. Funkce hash jsou k dispozici v hashlib
modulu. Smyčkujeme se až do konce souboru pomocí while
smyčky. Po dosažení konce dostaneme prázdný bajtový objekt.
V každé iteraci načteme ze souboru pouze 1024 bajtů (tuto hodnotu lze změnit podle našeho přání) a aktualizujeme hashovací funkci.
Nakonec pomocí hexdigest()
metody vrátíme digest zprávu v hexadecimálním vyjádření .