Program Python za iskanje razpršenih datotek

V tem članku se boste naučili poiskati zgoščeno datoteko in jo prikazati.

Če želite razumeti ta primer, morate poznati naslednje programske teme Python:

  • Python funkcije
  • Uporabniško določene funkcije Pythona
  • I / O datoteke Python

Funkcije razpršitve sprejmejo poljubno količino podatkov in vrnejo bitni niz fiksne dolžine. Izhod funkcije se imenuje povzetek sporočila.

Veliko jih uporabljajo v kriptografiji za namene preverjanja pristnosti. Obstaja veliko funkcij zgoščevanja, kot so MD5, SHA-1 itd. Oglejte si to stran, če želite izvedeti več o zgoščevalnih funkcijah v kriptografiji.

V tem primeru bomo ponazorili, kako razpršiti datoteko. Uporabili bomo algoritem razprševanja SHA-1. Prebava SHA-1 je dolga 160 bitov.

Podatkov iz datoteke ne dovajamo naenkrat, ker so nekatere datoteke zelo velike, da jih lahko naenkrat shranimo v pomnilnik. Če datoteko razbijete na majhne koščke, bo pomnilnik procesa učinkovit.

Izvorna koda za iskanje 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) 

Izhod

 633d7356947eec543c50b76a1852f92427f4dca9 

V tem programu datoteko odpremo v binarnem načinu. Funkcije razpršitve so na voljo v hashlibmodulu. Do konca datoteke zankamo z whilezanko. Ko dosežemo konec, dobimo objekt praznih bajtov.

V vsaki ponovitvi iz datoteke preberemo le 1024 bajtov (to vrednost je mogoče spremeniti glede na našo željo) in posodobimo funkcijo razprševanja.

Na koncu vrnemo povzetek sporočila v šestnajstiški predstavitvi z uporabo hexdigest()metode.

Zanimive Članki...