Листинг 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. Результат работы приложения «Шифр простой подстановки»