[python] Sifrovani

Milan Zmatlo milan.zmatlo na seznam.cz
Pátek Srpen 19 10:41:44 CEST 2005


Ivo Štolpa napsal(a):
> Milan Zmatlo napsal(a):
> 
>> Ivo Štolpa napsal(a):
>>
>>> Milan Zmatlo napsal(a):
>>>
>>>> Zdravim,
>>>>
>>>> obracim se na zdejsi osazensvto s nasledujicim mirnym OT:
>>>>
>>>> Rad bych k zakaznikovi distribuoval obecne "prelozeny kus kodu", 
>>>> ktery by obsahoval nejakym zpusobem zasifrovanou informaci o 
>>>> nastaveni teto konkterni distribuce (poc. uzivatelu, casova platnost 
>>>> atp.) Tento kod bych generoval pro kazdou instalaci unikatni.. to 
>>>> neni problem.
>>>>
>>>> Potrebuji poradit s pouzitim vhodneho algoritmu na zasifrovani / 
>>>> rozsifrovani teto informace. Nerad bych ale do aplikace ukladal 
>>>> nejaky klic pro sifrovani a desifrovani, to mi nepripada vhodne. 
>>>> Radsi bych mel dva klice. Mam spis predstavu, nez znalosti..
>>>>
>>>> Natuknete me prosim, kudy se vydat....
>>>>
>>> Já to dělám trochu "naruby" pomocí md5, který je v Pythonu 
>>> standardním modulem. Ty informace k uživateli dopravuji zcela veřejně 
>>> v textovém souboru. Při prvním spuštění aplikace se zobrazí 
>>> registrační formulář, do kterého načtu hodnoty z toho textového 
>>> souboru (kdyby tam nebyl, tak by to holt uživatel musel všechno 
>>> vypsat ručně). Jako poslední je místo pro zadání kódu md5, který musí 
>>> uživatel vyplnit dle dodané registrační karty. Graficky to může být 
>>> rozsekáno do několika částí, aby se to při zadávání lépe 
>>> kontrolovalo. Program pak z vyplněných údajů vypočítá kód md5 a 
>>> porovná ho se zadaným kódem. Pokud se rovná, je to OK vše se zapíše 
>>> někam do hloubi programu. Nemusí se to nějak moc schovávat, protože 
>>> při každém startu se z uložených hodnot vypočítá kód md5 a porovná s 
>>> uloženým kódem, takže by poznal, že se s údaji manipulovalo a 
>>> zobrazil by znovu registrační formulář.
>>>
>>> Jak jsem říkal není to bůhvíco, ale šel jsem cestou nejmenšího 
>>> odporu. Nelíbí se mi například, že při prodloužení musí uživatel 
>>> zadat nové datum platnosti, nebo při rozšíření o další modul jej 
>>> zafajfknout a poté zadat 32znakové hausnumero. Na druhou stranu je 
>>> možné mít jeden instalák (třeba pro internet bez toho textového 
>>> souboru). Uživatel pak sice musí vyplnit všechno, ale pro mne to 
>>> znamená pouhé zaslání registrační údajů včetně kódu md5 e-mailem nebo 
>>> poštou.
>>>
>>> Pokud někdo zná lepší řešení, sem s ním.
>>>
>>> Ivo
>>>
>>
>> V prvnim momentu mi to prislo jako super reseni, jednoduche, 
>> elegantni. Nemate ale zaruceno, ze si zvidavy uzivatel tento md5 
>> vygeneruje proste sam. Obzvlast, pokud se mu dostane do ruky i ten 
>> textovy soubor. Myslim, ze uhodnout ze string typu 
>> e23ecba40665787a55afcbbe8a2efaa6 je md5 hash neni az tak slozite.. jde 
>> uz jen o to, ceho..
>>
>> Ale diky za napad..
>>
> Oops! Zapoměl jsem dodat, že do toho generování kromě těch veřejně 
> známých registračních údajů vstupuje i několik údajů, které si program 
> zjistí bokem. Musí to být údaje zjistitelné jak u mne, tak v běžící 
> aplikaci u zákazníka. Stačí velikost nějakého modulu nebo souboru(ů). 
> Nebo nějaká hexahodnota vydolovaná odkudkoliv, která je pro tuto verzi 
> pevně daná. Takže zase tak jednodu to není. Navíc při generování md5 
> kódu také záleží na pořadí v jakém se do md5 jednotlivé hodnoty vkládají..
> 
> Ivo
> 

To je pravda... rozhodne tento zpusob promyslim, jeste jednou diky...

-- 
Milan Zmátlo



Další informace o konferenci Python