„Python“ programa failo maišos paieškai

Šiame straipsnyje sužinosite, kaip rasti failo maišos failą ir jį parodyti.

Norėdami suprasti šį pavyzdį, turite žinoti apie šias „Python“ programavimo temas:

  • „Python“ funkcijos
  • „Python“ vartotojo nustatytos funkcijos
  • „Python“ failo įvestis / išvestis

Maišos funkcijos ima savavališką duomenų kiekį ir grąžina fiksuoto ilgio bitų eilutę. Funkcijos išvestis vadinama santraukos pranešimu.

Jie plačiai naudojami kriptografijoje autentifikavimo tikslais. Yra daugybė maišos funkcijų, tokių kaip MD5, SHA-1 ir kt. Žr. Šį puslapį, kad sužinotumėte daugiau apie maišos funkcijas kriptografijoje.

Šiame pavyzdyje mes parodysime, kaip maišos failą. Mes naudosime SHA-1 maišos algoritmą. SHA-1 suskaidymas yra 160 bitų ilgio.

Duomenis iš failo neteikiame vienu metu, nes kai kurie failai yra labai dideli, kad tilptų į atmintį vienu metu. Padalinus failą į mažus gabalėlius, proceso atmintis bus efektyvi.

Šaltinio kodas norint rasti „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) 

Rezultatas

 633d7356947eec543c50b76a1852f92427f4dca9 

Šioje programoje atidarome failą dvejetainiu režimu. Maišo funkcijos yra hashlibmodulio. Mes sukame iki failo pabaigos, naudodami whilekilpą. Pasiekę pabaigą, gauname tuščių baitų objektą.

Kiekvienoje iteracijoje iš failo perskaitėme tik 1024 baitus (šią vertę galima pakeisti pagal mūsų norą) ir atnaujiname maišos funkciją.

Galiausiai, naudojant hexdigest()metodą, pateikiame santraukos pranešimą šešioliktainiu pavidalu .

Įdomios straipsniai...