Питхон програм за проналажење хеша датотеке

У овом чланку ћете научити како да пронађете хеш датотеке и прикажете је.

Да бисте разумели овај пример, требало би да имате знање о следећим Питхон програмским темама:

  • Питхон функције
  • Питхон кориснички дефинисане функције
  • Улаз / излаз датотеке Питхон

Хасх функције узимају произвољну количину података и враћају битни низ фиксне дужине. Излаз функције назива се дигест порука.

Они се широко користе у криптографији у сврхе аутентификације. Постоји много функција хеширања попут МД5, СХА-1 итд. Погледајте ову страницу да бисте сазнали више о хеш функцијама у криптографији.

У овом примеру ћемо илустровати како хеширати датотеку. Користићемо алгоритам хеширања СХА-1. Сажетак СХА-1 дугачак је 160 бита.

Не хранимо податке из датотеке одједном, јер су неке датотеке врло велике да би се одједном стале у меморију. Разбијање датотеке на мале комаде учинит ће процесну меморију ефикасном.

Изворни код за проналажење хеша

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

Оутпут

 633д7356947еец543ц50б76а1852ф92427ф4дца9 

У овом програму датотеку отварамо у бинарном режиму. Хасх функције су доступне у hashlibмодулу. Петљу вршимо до краја датотеке помоћу whileпетље. По доласку на крај добијамо празан бајт објекат.

У свакој итерацији из датотеке читамо само 1024 бајта (ова вредност се може променити према нашој жељи) и ажурирамо функцију хеширања.

На крају, помоћу hexdigest()методе враћамо сажету поруку у хексадецималном представљању .

Занимљиви Чланци...