Olyan egyszerű titkosítási algoritmust miként lehet írni, amely ugyanazon bemeneti szövegre mindig más-más titkos szöveget ad vissza?
Gondolok itt arra, hogy például a szöveg: "alma", akárhányszor kódolnám a programmal, mindig más-más titkos szöveget kapnék vissza. Az algoritmust nem úgy gondolom, hogy pl. egy random számot előállítana minden alkalommal és pl. beírná a fájl elejére kódoláskor, majd dekódoláskor kiolvasná és ezel végezné el a dekódolást. :-)
Kaphatok ötleteket, ezt ki miként oldaná meg, nagyon érdekelne a dolog, minek nézzek utána.
Sajnos "nem tartok sehol", az alábbi kódrészlet szinte egyenlő a nullával. :-(
Program Kodol_Dekodol;
Var
szov : String;
Procedure kodol;
Begin
ReadLn(szov);
End;
Procedure dekodol;
Begin
ReadLn(szov);
End;
Begin
Write(#13#10,'Kérem a szöveget : ');
kodol;
dekodol;
End.
"kódoláselmélet" a kulcsszavad.
Én a következőre gondoltam:
- A programban van egy "szótár", melyben minden betűhöz van több kód.
- Egy kód csak egyetlen betűhöz tartozhat - ez biztosítja az egyértelmű dekódolhatóságot.
- Kódoláskor minden karakternél az adott betűhöz választ egy kódot randomszerűen a megfelelő kódhalmazból.
- Dekódoláskor az egy betűnek megfelelő kódszeletet visszakeresi a szótárból.
- Ügyelni kell arra a kódok megtervezésénél, hogy az üzenetet egyértelműen lehessen felbontani kódokra. Legegyszerűbb mód, ha minden kód után beiktatunk egy elválasztót.
> "elválasztó" alatt a "-" jelre gondolsz?
Nem. Elválasztó alatt bármilyen olyan jelre/jelsorozatra, ami nem betűkód és nem betűkód prefix, így használható elválasztóként, értsd: hogy tudja a dekóder, hol ért véget egy betűkód és hol kezdődik egy másik.
Értem, köszönöm.
Amennyiben olyan kódolást használnék, hogy "kódolandó betűknek" az egész 0..255-ig terjedő ASCII kódtáblát tekinteném, akkor már nem működne ez a módszer? (bár azaz működhet, csak a kódolt szöveg - gondolom - duplája lenne az eredetinek...
> "kódolandó betűknek" az egész 0..255-ig terjedő ASCII kódtáblát tekinteném
Működhet, csak akkor nem 1 karakteres kódszavaid lesznek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!