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 hashlib
modulban érhetők el . A fájl végéig while
hurkot 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.