program CryptDemo_4;
(**************************************)
(*Шифрование строк текста случайными сдвигами символов с кодами 32..255.*)
(* Turbo Pascal 3.xx *)
(**************************************)
const
TestTxt1 = ?Мама мыла Машу мылом. Маша мыло не любила. ?#10;
TestTxt2 = ?Шифрование заменой символов.?;
var
I : byte;
C : char;
Line : string [$FF];
ShiftTab : array [1..255] of byte;
begin
TextBackGround (Black);
(* шифруемый текст *)
Line := TestTxt1 + TestTxt2;
TextColor (Yellow);
WriteLn (Line);
(* рандомизация ключа шифрования *)
Randomize;
(* подготовка таблицы сдвигов *)
for I := 1 to Length (Line) do
ShiftTab [I] := Random (224);
(* шифрование заменой символов *)
for I := 1 to Length (Line) do
if Line [I] >= #32 then
Line [I] := Chr ((Ord (Line [I]) + 192
- ShiftTab [I]) mod 224 + 32);
TextColor (LightCyan);
WriteLn (Line);
(* дешифрирование замены символов *)
for I := 1 to Length (Line) do
if Line [I] >= #32 then
Line [I] := Chr ((Ord (Line [I]) - 32 + ShiftTab [I]) mod 
224 + 32);
TextColor (White);
Write (Line);
TextColor (LightGray);
WriteLn;
Halt
end. (* CryptDemo_4 *)
408