Python program a fájlok hasításának megkeresésére

Ebben a cikkben megtanulja megkeresni a fájl kivonatát és megjeleníteni azt.

A példa megértéséhez ismernie kell a következő Python programozási témákat:

  • Python függvények
  • Python Felhasználó által definiált függvények
  • Python fájl I / O

A hash függvények tetszőleges mennyiségű adatot vesznek fel, és rögzített hosszúságú bit karakterláncot adnak vissza. A függvény kimenetét összefoglaló üzenetnek nevezzük.

Széles körben használják a rejtjelezésben hitelesítési célokra. Számos kivonatoló funkció létezik, például MD5, SHA-1 stb. A titkosítás hash funkcióiról többet megtudhat ezen az oldalon.

Ebben a példában bemutatjuk, hogyan kell kivágni egy fájlt. Az SHA-1 hash algoritmust fogjuk használni. Az SHA-1 emésztése 160 bit hosszú.

Nem adjuk meg az adatokat egyszerre a fájlból, mert egyes fájlok nagyon nagyok, hogy egyszerre elférjenek a memóriában. A fájl apró darabokra bontása hatékonyabbá teszi a folyamatmemóriát.

Forráskód a hash megkereséséhez

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

Kimenet

 633d7356947eec543c50b76a1852f92427f4dca9 

Ebben a programban bináris módban nyitjuk meg a fájlt. A hash funkciók a hashlibmodulban érhetők el . A fájl végéig whilehurkot használunk . A végére érve üres bájt objektumot kapunk.

Minden egyes iterációban csak 1024 bájtot olvasunk (ez az érték kívánságunknak megfelelően változtatható) a fájlból, és frissítjük a hash funkciót.

Végül az összefoglaló üzenetet hexadecimális ábrázolásban adjuk vissza a hexdigest()módszer segítségével.

érdekes cikkek...