Artykuł przedstawia prosty algorytm kodowania tekstu na podstawie określonych liczb. Na początku zadeklaruj stałe. Na podstawie ich wartości będzie kodowany i dekodowany tekst.
1 2 3 4 5 6 7 |
const C1 = 52845; {Liczby na podstawie których} C2 = 11719; {zostanie zakodowany tekst } Key = 1234; |
Funkcja do kodowania tekstu jest następująca :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
function Koduj(S: String; Key: Word): String; var I: byte; Tmp : string[255]; begin if length(s) = 0 then exit; Tmp[1] := S[1]; for I := 1 to Length(S) do begin Tmp[I] := char(byte(S[I]) xor (Key shr 8)); Key := (byte(S[I]) + Key) * C1 + C2; end; Result := Tmp; end; |
Do odkodowania posłużymy się :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
function Dekoduj(S: String; Key: Word): String; Var I: byte; Tmp : String[255]; begin if length(s) = 0 then exit; Tmp[1] := S[1]; for I := 1 to Length(S) do begin Tmp[I] := char(byte(S[I]) xor (Key shr 8)); Key := (byte(Tmp[I]) + Key) * C1 + C2; end; Result := Tmp; end; |
Wywołanie funkcji kodującej :
1 2 3 4 5 6 7 8 9 |
procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text := Koduj(Edit1.Text, 12); Button2.Enabled := True; end; |
Wywołanie funkcji dekodującej :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TForm1.Button2Click(Sender: TObject); var s : string; begin s := Edit2.Text; Edit2.Text := Dekoduj(s, 12); Button2.Enabled := False; end; |
Autor: Nakiel