...

Листинг 12.8.

Шифрование/дешифрование сообщения

procedure TfmSubstitution.btnEncryptMessageClick(Sender:

TObject);

var

i: Integer;

begin

//проверяем корректность ввода перестановки

if ValidateRearrangement then

begin

//создаем алфавит преобразования открытого текста

RecalcAlphabet(0);

//предотвращаем перерисовку компонента до тех пор,

//пока не зашифруем все строки сообщения

mmEncryptMessage.Lines.BeginUpdate;

//очищаем текстовый редактор

mmEncryptMessage.Clear;

//шифруем открытый текст построчно

for i := 0 to mmDecryptMessage.Lines.Count – 1 do

mmEncryptMessage.Lines.Add(EncryptDecryptString

(mmDecryptMessage.Lines[i]));

//разрешаем перерисовку компонента

mmEncryptMessage.Lines.EndUpdate;

end

else

MessageDlg(\'Ошибка: символы подстановки заданы неверно\',

mtError, [mbOk], 0);

end;

procedure TfmSubstitution.btnDecpyptMessageClick(Sender:

TObject);

var

i: Integer;

begin

//проверяем корректность ввода перестановки

if ValidateRearrangement then

begin

//создаем алфавит преобразования шифрованного текста

RecalcAlphabet(1);

mmDecryptMessage.Lines.BeginUpdate;

mmDecryptMessage.Clear;

//дешифруем шифрованный текст построчно

for i := 0 to mmEncryptMessage.Lines.Count – 1 do

mmDecryptMessage.Lines.Add(EncryptDecryptString

(mmEncryptMessage.Lines[i]));

mmDecryptMessage.Lines.EndUpdate;

end

else

MessageDlg(\'Ошибка: символы подстановки заданы неверно\',

mtError, [mbOk], 0);

end;

В итоге мы получили вполне рабочий вариант приложения, способного без особого труда шифровать и дешифровать сообщения. На рис. 12.2 представлен результат работы данного приложения.

Рис. 12.2. Результат работы приложения «Шифр простой подстановки»

Загрузка...