Кодировка полиалфавитным шифром Вигeнера

Материал из DRKB



{ **** UBPFD *********** by kladovka.net.ru ****
>> Кодировка полиалфавитным шифром Вигенера - xor кодировка

Кодировка полиалфавитным шифром Вигенера - xor кодировка
одна функция для кодирования и декодирования
Input - входная строка. При кодировании это незакодированная строка, при декодировнии это закодированная строка.
Key - слово ключ один и тот же в обоих случаях.

При совпадении символов во входной строке и строке ключе на выходе получается символ '#0'.

Зависимости: Стандартные модули
Автор:       Ru, DiVo_Ru@rambler.ru, Одесса
Copyright:   DiVo 2002 creator Ru
Дата:        18 ноября 2002 г.
********************************************** }

function VigenerCoDec(Input, Key: PChar): PChar
var
  i, j: Integer;
  tmps, text: string;
begin
  text := Input;
  for i := 1 to Length(text) do
  begin
    if i > Length(key) then
      j := i mod Length(key)
    else
      j := i;
    tmps := tmps + Chr((Ord(text[i])) xor (Ord(key[j])));
  end;
  Result := PChar(tmps);
end;


Пример использования:

Text := Edit1.Text;
K := Edit2.Text;
Edit3.Text := VigenerCoDec(Text, K);

// Закодировать:
Input := 'Привет я РУ';
Key := 'hello';
Result := 'ГуднйзHвH++';

// Восстановить:
Input := 'ГуднйзHвH++';
Key := 'hello';
Result := 'Привет я РУ';


Author: Ru
ID: 03989