Кодировка полиалфавитным шифром Вигeнера
Falk0ner, вс, 06/07/2008 - 15:35.
Кодировка полиалфавитным шифром Вигeнера
{ **** UBPFD *********** by kladovka.net.ru ****
>> - xor кодировка
- xor кодировка
одна функция для кодирования и декодирования
Input - входная строка. При кодировании это незакодированная строка, при декодировнии это закодированная строка.
Key - слово ключ один и тот же в обоих случаях.
При совпадении символов во входной строке и строке ключе на выходе получается символ '#0'.
Зависимости: Стандартные модули
Автор: Ru, <a href="mailto:DiVo_Ru@rambler.ru">DiVo_Ru@rambler.ru</a>, Одесса
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;
>> - xor кодировка
- xor кодировка
одна функция для кодирования и декодирования
Input - входная строка. При кодировании это незакодированная строка, при декодировнии это закодированная строка.
Key - слово ключ один и тот же в обоих случаях.
При совпадении символов во входной строке и строке ключе на выходе получается символ '#0'.
Зависимости: Стандартные модули
Автор: Ru, <a href="mailto:DiVo_Ru@rambler.ru">DiVo_Ru@rambler.ru</a>, Одесса
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:='Привет я РУ';
K:=edit2.text;
Edit3.text:=VigenerCoDec(Text,K);
Закодировать:
Input:='Привет я РУ'; Key:='hello'; result:='ГуднйзHвH++';
Восстановить:
Input:='ГуднйзHвH++'; Key:='hello'; result:='Привет я РУ';
Отправить комментарий