Programowanie w języku Delphi » Gotowce

Implementacja algorytmu Rot13

  • 2006-05-30 15:59
  • 1 komentarz
  • 973 odsłony
  • Oceń ten tekst jako pierwszy
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.). 1

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ż:


[1] Źródło: Wikipedia</wiki>

1 komentarz

TeWuX 2006-05-29 18:48

o ile pamiętam to jest chyba tzw. Szyfr Cezara. Ale nie jestem pewnien.