Python-ohjelma tiedostojen hajauttamisen löytämiseksi

Tässä artikkelissa opit etsimään tiedoston tiivisteen ja näyttämään sen.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Python-ohjelmointiaiheista:

  • Python-toiminnot
  • Python-käyttäjän määrittelemät toiminnot
  • Python-tiedoston I / O

Hash-toiminnot vievät mielivaltaisen määrän tietoa ja palauttavat kiinteän pituisen bittimerkkijonon. Funktion lähtöä kutsutaan tiivistelmäviestiksi.

Niitä käytetään laajalti salauksessa todentamistarkoituksiin. On olemassa monia hajautusfunktioita, kuten MD5, SHA-1 jne. Katso tämä sivu saadaksesi lisätietoja hash-toiminnoista salauksessa.

Tässä esimerkissä havainnollistamme tiedoston hajauttamista. Käytämme SHA-1-hajautusalgoritmia. SHA-1: n sulatus on 160 bittiä pitkä.

Emme syötä tietoja tiedostosta kerralla, koska jotkut tiedostot ovat erittäin suuria, jotta ne mahtuvat muistiin kerralla. Tiedoston jakaminen pieniksi paloiksi tekee prosessimuistista tehokasta.

Lähdekoodi löytää 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) 

Tuotos

 633d7356947eec543c50b76a1852f92427f4dca9 

Tässä ohjelmassa avataan tiedosto binaaritilassa. Hash-toiminnot ovat käytettävissä hashlibmoduulissa. Silmukka on tiedoston loppuun whilesilmukalla. Saavuttuamme loppuun saamme tyhjät tavuobjektin.

Jokaisessa iteraatiossa luemme vain 1024 tavua (tätä arvoa voidaan muuttaa toiveemme mukaan) tiedostosta ja päivitämme hajautusfunktion.

Lopuksi palautamme tiivistelmäviestin heksadesimaalimuodossa hexdigest()menetelmää käyttäen .

Mielenkiintoisia artikkeleita...