Pythoni programm faili räsi leidmiseks

Selles artiklis õpitakse leidma faili räsi ja seda kuvama.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Pythoni programmeerimise teemadest:

  • Pythoni funktsioonid
  • Pythoni kasutaja määratud funktsioonid
  • Pythoni faili sisend / väljund

Räsifunktsioonid võtavad suvalise hulga andmeid ja tagastavad kindla pikkusega bitistringi. Funktsiooni väljundit nimetatakse kokkuvõtte sõnumiks.

Neid kasutatakse krüptograafias laialdaselt autentimise eesmärgil. Seal on palju räsimisfunktsioone, nagu MD5, SHA-1 jne. Siit leiate selle lehe, et krüptograafias räsifunktsioonidest rohkem teada saada.

Selles näites selgitame, kuidas faili räsida. Kasutame räsimisalgoritmi SHA-1. SHA-1 kokkuvõte on 160 bitti pikk.

Me ei tooda faili andmeid korraga, sest mõned failid on väga suured, et mahuksid korraga mällu. Faili jagamine väikesteks tükkideks muudab protsessimälu tõhusaks.

Lähtekood Hashi leidmiseks

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

Väljund

 633d7356947eec543c50b76a1852f92427f4dca9 

Selles programmis avame faili binaarrežiimis. Hash funktsioonid on hashlibmoodulis saadaval . Lingime faili lõpuni whilesilmuse abil. Lõppu jõudes saame tühjad baidid objekti.

Igas iteratsioonis loeme failist ainult 1024 baiti (seda väärtust saab vastavalt meie soovile muuta) ja värskendame räsimisfunktsiooni.

Lõpuks tagastame kokkuvõtte sõnumi hexdigest()meetodi abil kuueteistkümnendsüsteemis .

Huvitavad Artiklid...