Курсовая работа: Шифровка и дешифровка текста
res:=0;
for i:=1 to length(psw) do res:=res+ord(psw[i]);
Password:=res;
END;
Функция Crypt (FUNCTION Crypt(CryptStr: string): string; ): функциядляшифрованиятекста. При вызове данной функции ей передается текст который необходимо шифровать, этот текст присваивается переменной CryptStr . В данной функции созданы следующие внутренние переменные необходимые для ее работы:
· переменные s , s 1 – строкового типа. В переменную s 1 будет записываться результат работы. Переменная s будет содержать в себе значение первого символа строки CryptStr
· переменные i , rez – целого типа. Переменная i необходима для работы цикла. Переменная rez будет содержать числовое значение символа находящегося в s .
Переменной s 1 присваиваем пустое значение. Создаем цикл от 1 до количества символов в тексте содержащемся в переменной CryptStr (это значение мы получим выполнив команду length ( CryptStr ) ). Далее в цикле текст «разбирается» на символы и каждый символ командой ORD переводится в его числовой код при этом к полученному числу прибавляется алгебраическая сумма числовых кодов символов ключа (эта сумма возвращается при вызове функции Password ), полученное значение присваивается переменной rez . Затем полученные числовые значения переводятся в символьные командой STR и складываются, при этом между значениями вставляются пробелы (это необходимо для того, чтобы дешифратор по пробелам мог отделить числа, иначе он принял бы их за одно большое число).
FUNCTION Crypt(CryptStr: string): string;
VAR s,s1: string;
i,rez: integer;
BEGIN
s1:='';
for i:=1 to length(CryptStr) do
begin
s:=CryptStr;
s:=copy(s,1,1);
CryptStr:=copy(CryptStr,2,length(CryptStr)-1);
rez:=ord(s[1])+Password(PassW);
str(rez,s);
s1:=s1+s+' ';
end;
delete(s1,length(s1),1);
Crypt:=s1;
END;
Функция Decrypt (FUNCTION Decrypt ( DecryptStr : string ): string ; ): функция для дешифровки текста. При вызове этой функции ей передается зашифрованный текст, который необходимо расшифровать, этот текст записывается в переменную DecryptStr . В данной функции созданы следующие внутренние переменные необходимые для ее работы:
· переменные Xpos , i , v , e – целого типа. Переменная Xpos будет содержать в себе позицию пробела. Переменная i необходима для работы цикла. Переменные v и e необходимы для работы с оператором VAL (данный оператор преобразует символ в число)
· переменные Code , s 1 – строкового типа. Переменная s 1 будет содержать результат работы. Переменная Code будет содержать значение первого числа извлеченного из переменной DecryptStr .
Создадим цикл размером от 1 до количества символов в переменной DecryptStr (это значение мы получим выполнив команду length ( DecryptStr ) ). Далее в цикле из полученного зашифрованного текста «выдергиваются» числа разделенные пробелами и переводятся в числовые значения при помощи команды VAL потом от них отнимается алгебраическая сумма числовых кодов символов ключа (эта сумма возвращается при вызове функции Password ), затем полученные значения преобразуются командой CHR в символьные и складываются. Полученный результат возвращается функцией Decrypt .