MC, 20:54 poniedziałek, 05.08.2013 r.
Ilustracja do artykułu: Python - Generowanie sum kontrolnych algorytmem MD5

Python - Generowanie sum kontrolnych algorytmem MD5

Spróbujmy w tej notce wygenerować sumy kontrolne przy pomocy algorytmu MD5 w skryptach Python-a.

Jak generować hashe MD5 używając języka Python?

Pewien czas temu przyszło mi stanąć przed zadaniem wygenerowania hashy ze zbioru stringów w skrypcie Python-a. Zagadnienie okazało się proste do wykonania, ale mimo to postanowiłem umieścić na łamach strony notatkę z tego przedsięwzięcia.

W pierwszej kolejności powinniśmy zaimportować odpowiedni pakiet, pozwalający na generowanie sum kontrolnych przy użyciu algorytmu MD5. Ja zastosowałem bibliotekę o zaskakującej nazwie md5, ale zapewne nie jest to jedyna opcja. Pozostańmy jednak przy tym wyborze, na potrzebny niniejszego artykułu. Po imporcie wspomnianego pakietu, będziemy mieli możliwość stworzenia obiektu zdolnego do generowania hashy MD5. Spójrzmy na poniższy przykład skopiowany z konsoli Pythona, który omówimy w kolejnym akapicie:

>>>import md5
>>>md5Generator = md5.new("www.mblog.boo.pl")
>>>md5Generator.digest()
'xe8x96xcdxd0vxdbxcb#x18xa6x84wxcex02xxb4'
>>>md5Generator.hexdigest()
'e896cdd076dbcb2318a68477ce0278b4'
>>>md5Generator.update("http://www.mblog.boo.pl")
>>>md5Generator.digest()
'xbbOxedxa6RXxcbxddR[x9dxc6o&=Z'
>>>md5Generator.hexdigest()
'bb4feda65258cbdd525b9dc66f263d5a'

Co widzimy na przykładzie?

Jak możemy zobaczyć na powyższym przykładzie, zaczynamy generowanie hashy od zaimportowania pakietu md5. Następnie tworzymy obiekt generatora, przekazując do konstruktora tekst, którego sumę chcemy obliczyć (nie jest to obowiązkowe - możemy zostawić pusty konstruktor, a w dalszej kolejności użyć metody update(), o której również za chwilkę...). W następnej linijce wywołujemy metodę digest(), która zwraca obliczoną sumę kontrolną w postaci binarnej. Jeśli chcemy otrzymać hash w postaci stringa, należy posłużyć się metodą hexdigest(), jak to ma miejsce dalej w kodzie przykładu. Pozostaje nam do omówienia metoda update(), do której możemy przekazać dane, z których ma zostać obliczona nowa suma.

Myślę, że nie jest to specjalnie skomplikowane podejście do liczenia hashy, a wręcz przeciwnie, raczej proste i wygodne.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: