Листинг 12.5.
Использование генерации случайной перестановки
procedure TfmSubstitution.FormCreate(Sender: TObject);
var
Ch: char;
begin
Randomize;
//инициализация редактора значений
for Ch := \'А\' to \'Я\' do
vleSubst.InsertRow(Ch, \'\', True);
//генерация случайной перестановки
GenRearrangment;
end;
procedure TfmSubstitution.btnGenRearrangementClick(Sender:
TObject);
begin
GenRearrangment;
end;
Следующим объектом нашего рассмотрения является функция предварительной подготовки алфавита преобразования для шифрования либо дешифрования сообщения. У метода RecalcAlphabet есть параметр пКеу, который в зависимости от своего значения показывает, что является ключом. Возможными значениями пКеу являются 0 и 1. Значение 0 указывает на то, что будет производиться шифрование сообщения и требуется поставить в соответствие буквам открытого текста буквы перестановки. Значение 1, напротив, указывает на то, что будет производиться дешифрование сообщения и требуется поставить в соответствие буквам перестановки буквы открытого текста. Для этого массив сопоставления символов изначально заполняется таким образом, чтобы каждый символ соответствовал самому себе. Это происходит в следующих строках метода: