Кодировка полиалфавитным шифром Вигeнера - 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 := 'Привет я РУ';