Implementacja algorytmu Rot13
Adam Boduch
Rot13 to prosty szyfr przesuwający, polegający na zamianie każdego znaku alfabetu łacińskiego na znak występujący 13 pozycji po nim, przy czym wielkość liter nie ma przy przekształcaniu znaczenia. Najważniejszą cechą rot13 w porównaniu z innymi szyframi jest to, że sam jest swoją odwrotnością, czyli używa się tej samej funkcji do kodowania i dekodowania wiadomości: rot13(rot13(m)) = m.
Rot13 jest często stosowany w Usenecie oraz w sytuacjach, gdy przekazując komuś jakąś wiadomość, jednocześnie chcemy sprawić, aby nie była ona bezpośrednio odczytywana. Ta metoda jest stosowana w przypadkach, gdy treść informacji mogłaby zranić uczucia osobiste, estetyczne, moralne jakieś osoby lub np. gdy może zdradzić puentę jakiegoś dzieła (filmu, książki itp.). [#]_
Funkcja implementująca algorytm Rot13 jest bardzo prosta:
function Rot13(Input : String) : String;
var
StrLen, i, charNum : Word;
begin
StrLen := Length(Input);
for i:= 1 to StrLen do
begin
charNum:= Ord(Input[i]);
if (UpCase(Input[i]) in ['A'..'M']) then inc(charNum, 13) else
if (UpCase(Input[i]) in ['N'..'Z']) then dec(charNum, 13);
result:= result + chr(charNum);
end;
end;
Parametr musi zawierać tekst do zaszyfrowania - przykład:
Edit1.Text := Rot13(Edit1.Text);
Zobacz też:
.. [#] Źródło: <wiki href="Rot13">Wikipedia</wiki>
o ile pamiętam to jest chyba tzw. Szyfr Cezara. Ale nie jestem pewnien.