[python] crypting

Radek Kanovsky rk na dat.cz
Úterý Prosinec 14 14:41:55 CET 2004


On Tue, Dec 14, 2004 at 01:40:55PM +0100, p.kosina wrote:

> Ve scriptu na odesilani pres ftp mam i jmeno a heslo a chtel bych to 
> nejak zaheslovat, coz se mi i pres import hmac podarilo.
> Nevim ale jak to pak rozheslovat :-), kdyz to prectu ze souboru....

HMAC je (stejne jako MD5 nebo SHA) jednocestna hasovaci funkce,
takze o desifrovani v tomto pripade nelze mluvit. Vtip je zalozen
na tom, ze nalezeni puvodniho vstupu k vysledku hasovaci funkce
(desifrovani) by melo byt vypocente velmi narocne, tj. na beznem
pocitaci nerealizovatelne.

S pomoci HMAC muzete teda maximalne overit, ze heslo, co zadal uzivatel
na vstupu, je stejne jako to, co mate ulozene v zahashovane podobe
(vysledek methody digest()). Overeni probehne tak, ze se zadanym heslem
provedete to same co s originalnim heslem a vysledny 'digest()' musi byt
oba vstupy stejny. Pokud se digest() lisi, uzivatel urcite zadal spatne
heslo. Vyhoda je v tom, ze puvodni heslo nemusi byt nikde ulozeno v
otevrene podobe, nevyhoda v tom, ze puvodni heslo nezjistite.

Pokud chcete neco zasifrovat tak, abyste to mohl pozdeji desifrovat,
je potreba pouzit nejakou symetrickou sifru. Ta vetsinou ale vyzaduje
nejaky klic. A ten klic musite zase nekam ulozit, takze jste tam, kde
jste byl. Pokud pouzijete sifru bez hesla, tak si to zase muze kdokoliv
desifrovat, protoze algoritmus pro desifrovani bude primo v tom skriptu.
Asi zalezi na tom, co presne chcete udelat.

Radek Kaňovský



Další informace o konferenci Python