Кодировка полиалфавитным шифром Виг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