Python-program for å finne hasj av fil

I denne artikkelen lærer du å finne hash til en fil og vise den.

For å forstå dette eksemplet, bør du ha kunnskap om følgende Python-programmeringsemner:

  • Python-funksjoner
  • Python brukerdefinerte funksjoner
  • Python File I / O

Hash-funksjoner tar en vilkårlig mengde data og returnerer en bitstreng med fast lengde. Utgangen av funksjonen kalles fordøyelsesmeldingen.

De brukes mye i kryptografi for autentiseringsformål. Det er mange hashfunksjoner som MD5, SHA-1 osv. Se denne siden for å vite mer om hashfunksjoner i kryptografi.

I dette eksemplet vil vi illustrere hvordan du hash en fil. Vi vil bruke SHA-1 hashing-algoritmen. Fordøyelsen av SHA-1 er 160 bits lang.

Vi mater ikke dataene fra filen samtidig, fordi noen filer er veldig store for å passe i minnet samtidig. Å dele filen i små biter vil gjøre prosessminnet effektivt.

Kildekode for å finne hasj

 # 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) 

Produksjon

 633d7356947eec543c50b76a1852f92427f4dca9 

I dette programmet åpner vi filen i binær modus. Hash-funksjoner er tilgjengelige i hashlibmodulen. Vi sløyfer til slutten av filen ved hjelp av en whilesløyfe. Når vi når slutten, får vi tomme byteobjekter.

I hver iterasjon leser vi bare 1024 byte (denne verdien kan endres etter vårt ønske) fra filen og oppdaterer hashing-funksjonen.

Til slutt returnerer vi fordøyelsesmeldingen i heksadesimal representasjon ved hjelp av hexdigest()metoden.

Interessante artikler...