Python-program för att hitta hash av fil

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 hashlibmodulen. Vi slingrar till slutet av filen med en whileslinga. 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.

Intressanta artiklar...