Witam, Próbuję zrealizować proste szyfrowanie/deszyfrowanie XORem (to moje pierwsze zetknięcie z szyfrowaniem a nie ograniam tych szyfrowań AES itp. więc chciałem zrobić chociaż takie nieskomplikowane jak XOR),
Potrzebuję zrobić to tak by wynik szyfrowania był w zakresie ASCII ( od '!' do '~') tzn potrzebuje się pozbyć "dziwnych" znaków które mogę powodować problemy przy przesyłaniu stringów RS232 (np.znak końca linii).
Na razie mam to zrobione w taki sposób:
var
i, j, kluczdl, x,y: Integer;
str, str2, klucz: String;
b,c : char;
a: char;
licz: Integer;
begin
str := Edit3.Text;
klucz := Edit2.Text;
kluczdl := Length(klucz);
j := 1;
str2 := '';
for i := 1 to Length(str) do begin
b := str[i];
x := ord(b);
y := ord(klucz[j]);
y := y - 23;
c := Chr( x xor y );
str2 := str2 + c;
inc(j);
if j > kluczdl then j := 1;
end;
Edit4.Text := str2;
end;
To co mi przychodzi do głowy to zmiana: c := Chr(33 + (x xor y) ); to nam powinno "zabezpieczyć" zakres ASCII od dołu a z góry ? I jak to potem odszyfrować prawidłowo ?