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

Previous  Top  Next

    
 

 

Code:

{ **** UBPFD *********** by delphibase.endimus.com ****

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

 

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

 

©Drkb::04008