Kauno Technologijos Universitetas
Programinės Įrangos Katedra
(laboratorinis darbas Nr.1)
Atliko: IF 5/3 gr. studentas
Nerijus Jankevičius
Priėmė:
Doc. E. Karčiauskas
Uzduotis: Parasyti duomenis uzkoduojančią ir atkoduojančią programą. Pradinius ir galutinius duomenis saugoti failuose.
Algoritmas: Yra sudaryta koduojamų simbolių abėcėlė. Is viso 64 simboliai, kiekvienas simbolis turi savo pozijicą. Uzkoduojama ir atkoduojama pagal įvestą raktą, kuris sudarytas is skaitmenų (0..9). Rakto ilgis gali būti iki 20 simbolių.
Uzkodavimo zingsniai:
i=1.
Imamas rakto simbolis ri
Imamas simbolis, kurį reikia uzkoduoti, ir surandama jo pozicija abėcėlėje p.
atliekama operacija: k p XOR ri)+ 6*(ri+1).
Jeigu k>63, tai k=k mod 64.
Gauta reiksmė k atitinka uzkoduoto simbolio poziciją abėcėlėje.
Skaičiuojama i=i+1, jeigu i>n, tai i=0 (n rakto ilgis).
Atliekamas 2 punktas, kol visi simboliai bus uzkoduoti.
Atkodavimo zingsniai:
i=1.
Imamas rakto simbolis ri
Imamas simbolis, kurį reikia atkoduoti, ir surandama jo pozicija abėcėlėje k.
Atliekama operacija: p=k-6*( ri+1
Jeigu p<0, tai p=p+64.
p=p XOR ri.
Gauta reiksmė p atitinka atkoduoto simbolio poziciją abėcėlėje.
Skaičiuojama i=i+1, jeigu i>n, tai i=0 (n rakto ilgis).
Atliekamas 2 punktas, kol visi simboliai bus atkoduoti.
Programos ypatumai: Uzkoduojant didziosios raidės pakeičiamos į maząsias ir atkoduojant į didziąsias jos nebeatstatomos. Jeigu uzkoduojamo simbolio abėcėlėje nėra, jis paliekamas nepakeistas.
Trūkumai: Kadangi mano programoje į abėcėlę neįvestas eilutės pabaigos simbolis, tai jis nekeičiamas ir uzkoduotame tekste galima isskirti pastraipas (jeigu tai yra tekstinė informacija).
"Nulauzimo" galimybė: Jeigu raktas pakankamai ilgas, tai atspėti kas uzkoduota yra pakankamai sunku, nes ta pati raidė skirtingais atvejais keičiama į skirtingus simbolius. Be to nėra zinomas abėcėlės isdėstymas.
Neuzkoduoto teksto pvz.:
Objekto savininko sàvoka yra ávesta dël keletos prieþasèiø. Viena ið jø yra siekimas apsaugoti informacijà nuo asmenø, turinèiø administratoriaus slaptaþodá. Pavyzdþiui administratorius nori perþiûrëti kokià nors vartotojo informacijà neturëdamas tam teisiø. O norëdamas nurodyti sau atitinkamas teises, tam, kad galëtø perþiûrëti failà, jis turi tapti objekto savininku. Taèiau, tapæs objekto savininku jis negali jo perduoti kitam asmeniui. Todël ðis nelegalus priëjimas prie informacijos gali bûti pastebëtas.
Kita prieþastis yra ta, kad vartotojas per klaidà gali iðtrinti visas priëjimo ir naudojimosi objektu
teises. Bet net ir tokiu atveju savininkas galës prieiti prie savo objekto.
Uzkoduotas tekstas:
/;h;i5/>þ+s*;dkql9+ue8i,2by%)1"më%p9+dþ4(=/fv
8;(.ig8>xusy%d/(lë>u3/iræg%u>;6(xx!ë:vq2ivw(5/më9n*.?r>t*m<ë6d:;!ë1 9--ë2n,2my;i*:!þæ!0+!f)l5?>y%+1*jr=d(k>k5l9uml;yu0>g5n*;ty >, jy%dxxnr4l%?!f>>x)!b4!-/);ë>0usi7)-?oyæ!;:dk1m5*!g8n*%më%l%?>b;n-?,a?p*2icqds2yc<m9q!a4l5/fcæd/vlax! ?f-æy:xoa?),:!þæp,:>g;dx?-ææl9;la?),:!þæy4*lz2p*2mr5>,xdg1ywujr>>5.dþ;m72prx"9(!zæ*,)vg >0.ns1,%jpyæ+,?h-á>(?më4o%?>g+k5?>c/f:(pcæm,qdk1yw%<ë4!r?!fá>5uk.>>1rfvqp12mr6d/?yn5>(?më%(!uhyæf12kv<)4/pyæi*x!læ!x:(k1o*3>g8)o)>:1m9;(m;*,)oþæk%?vh1j,+>b<d:2dk(l%:!o1f1+>t+h*2;!4d9=!þ4(.jpr><
w?præk%?(s+m5?më2n,2prá>wu)ë6!%xlg8f,+>b;n9(hr1)s2*rwd9? g<d/xdë6dxumë9n*jfyxl9?në%!4 lh1j1+dë8;(.ig5>
5.dþ;m82;v4>/.pë1n9xln1o9upe;f42mr6d/?yn+m9z!m?m9=ny;d5?>b<d:2mr6l9/;h;i5/<
Atkoduotas tekstas:
objekto savininko sàvoka yra ávesta dël keletos prieþasèiø. viena ið jø yra siekimas apsaugoti informacijà nuo asmenø, turinèiø administratoriaus slaptaþodá. pavyzdþiui administratorius nori perþiûrëti kokià nors vartotojo informacijà neturëdamas tam teisiø. o norëdamas nurodyti sau atitinkamas teises, tam, kad galëtø perþiûrëti failà, jis turi tapti objekto savininku. taèiau, tapæs objekto savininku jis negali jo perduoti kitam asmeniui. todël ðis nelegalus priëjimas prie informacijos gali bûti pastebëtas.
kita prieþastis yra ta, kad vartotojas per klaidà gali iðtrinti visas priëjimo ir naudojimosi objektu
teises. bet net ir tokiu atveju savininkas galës prieiti prie savo objekto.
|