I den här artikeln lär du dig att hitta hash för en fil och visa den.
För att förstå detta exempel bör du ha kunskap om följande Python-programmeringsämnen:
- Python-funktioner
- Python användardefinierade funktioner
- Python File I / O
Hash-funktioner tar en godtycklig mängd data och returnerar en bitsträng med fast längd. Funktionens utsignal kallas sammandragsmeddelandet.
De används ofta i kryptografi för autentiseringsändamål. Det finns många hashfunktioner som MD5, SHA-1 etc. Se den här sidan för att lära dig mer om hashfunktioner i kryptografi.
I det här exemplet kommer vi att illustrera hur man hasar en fil. Vi använder SHA-1-hashingalgoritmen. Sammandragningen av SHA-1 är 160 bitar lång.
Vi matar inte data från filen på en gång, eftersom vissa filer är mycket stora för att passa i minnet på en gång. Att dela upp filen i små bitar gör processminnet effektivt.
Källkod för att hitta 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)
Produktion
633d7356947eec543c50b76a1852f92427f4dca9
I det här programmet öppnar vi filen i binärt läge. Hash-funktioner finns i hashlib
modulen. Vi slingrar till slutet av filen med en while
slinga. När vi når slutet får vi tomma byteobjekt.
I varje iteration läser vi bara 1024 byte (detta värde kan ändras enligt vår önskan) från filen och uppdaterar hashing-funktionen.
Slutligen returnerar vi smältmeddelandet i hexadecimal representation med hexdigest()
metoden.