(Ne)programátorská úloha 2 – Tajný hash

Termín odovzdania – 09.12.2018 22:00

Síce je úloha označená ako (ne)programátorská, neznamená to, že v nej nebudete musieť programovať. Neľakajte sa preto.

Zadanie (8 bodov)

Rozhodol som sa, že si zahashujem nejaké slovenské podstatné meno, ktoré bolo napísané bez diakritiky malými písmenami anglickej abecedy. Asi najpoužívanejší hash je md5, ktorý sa nacházda aj v Pythone, takže vcelku prirodzene som siahol po ňom. Takto vyzeral program, ktorý som použil:

Python3

import hashlib
slovo = 'zaba' # toto samozrejme nie je to slovo, čo som použil
print(hashlib.md5(slovo.encode('utf-8')).hexdigest()) # kódovanie som použil utf-8, výsledok som zobrazil v hexovom (16-kovom) zápise

Python2.7

import md5
slovo = 'zaba' # to iste :P
m = md5.new() # toto vymaže všetko predchádzajúce z md5 hashu
m.update(slovo.encode('utf-8')) # pridá slovo do hashovania
print(m.hexdigest())

Ako výsledok som dostal hash 89655eff97d44a6a5fccd6e69364f24a. Zistite, aké slovo som hashoval.

Bonusové zadania (3 body)

Keďže používať iba slovenské slovo je príliš ľahké na prelomenie, rozhodol som sa pre niečo zložitejšie. Na začiatok aj koniec môjho slova som pridal jednu cifru. Aké slovo som hashoval, ak som dostal hash 92d35983936bb901c8e6b5cfaab72041.

Odovzdávanie a bodovanie

Plný počet bodov za úlohu je 8. Do termínu odovzdania mi pošlite mail s predmetom [5EVL-2018] DU1-neprog, ktorý bude obsahovať textový súbor (formátu .pdf), v ktorom bude napísaný výsledok a takisto spôsob, akým ste sa k tomuto výsledku dopracovali. V prípade, že pri riešení vytvoríte nejaké vlastné programy, pošlite mi aj tie.

Čo môžete (ne)použiť pri riešení

Samozrejme, neodpisujte jeden od druhého! Riešenie, ktoré odovzdávate má byť vaše. Naďalej platí, že ak ste zaseknutý, tak mi treba napísať. No a ako vždy, odporúčam to riešiť skôr ako večer pred deadlinom, keďže riešenie môže chvíľu trvať, a poriadne si čítať zadanie.