[python] Sifrovani

Ivo Štolpa pussa na pussa.cz
Pátek Srpen 19 10:32:04 CEST 2005


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

-- 
Ing. Ivo Štolpa

***********************************************
PUSSA software, Žižkova 13, 58601 Jihlava
e-mail: pussa na pussa.cz, ivo.stolpa na seznam.cz
stránky: http://www.pussa.cz
mobilní telefon: 602 735 124
pevná linka: 567 320 386
fax: 602 783 071
***********************************************





Další informace o konferenci Python