Program Python na nájdenie hašovania súborov

V tomto článku sa naučíte nájsť hašovací súbor a zobraziť ho.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Python:

  • Pythonove funkcie
  • Užívateľom definované funkcie v jazyku Python
  • V / V súborov Python

Funkcie hash berú ľubovoľné množstvo dát a vracajú bitový reťazec pevnej dĺžky. Výstup funkcie sa nazýva súhrnná správa.

V kryptografii sa často používajú na účely autentifikácie. Existuje mnoho hashovacích funkcií ako MD5, SHA-1 atď. Na tejto stránke nájdete ďalšie informácie o hashovacích funkciách v kryptografii.

V tomto príklade si ukážeme, ako zahašovať súbor. Použijeme algoritmus hash SHA-1. Štiepenie SHA-1 je dlhé 160 bitov.

Údaje zo súboru nepodávame naraz, pretože niektoré súbory sú veľmi veľké, aby sa naraz zmestili do pamäte. Rozbitie súboru na malé kúsky zefektívni pamäť procesu.

Zdrojový kód na nájdenie 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) 

Výkon

 633d7356947eec543c50b76a1852f92427f4dca9 

V tomto programe otvoríme súbor v binárnom režime. V hashlibmodule sú dostupné hašovacie funkcie . Smyčkujeme sa až do konca súboru pomocou whileslučky. Po dosiahnutí konca dostaneme objekt prázdnych bajtov.

V každej iterácii načítame zo súboru iba 1024 bajtov (túto hodnotu je možné zmeniť podľa nášho želania) a aktualizujeme funkciu hash.

Nakoniec hexdigest()metódu vrátime súhrnnú správu v hexadecimálnom vyjadrení .

Zaujímavé články...