|
Навигация
|
Главная » Delphi Crypt - Delphi программа для шифрования (исходники)Источник: Simply-Art В этой статье я расскажу про шифрование данных. Первое что надо знать, что это вообще такое и для чего служит: Первый способ шифрования производится путём замены целых фраз, слов, слогов или отд. букв цифрами или буквами в различных комбинациях на основе заранее принятой системы, являющейся соответственно ключом для расшифровки текста. Применяется также двойной Шифр, требующий двойной расшифровки при помощи двух ключей. Шифр не всегда гарантирует абсолютную тайну секретной переписки, т.к. даже к очень сложным Шифрам может быть подобран ключ путём расчётов, вычислений повторяемости отдельных знаков и т.п. Самый простой способ сделать такое шифрование, по-моему, это чтение текста побуквенно. Для начала разместим на форме Memo, два Edit и четыре Button. Напишем процедуру замены чисел от 0 до 9 и обратную ей процедуру: Procedure Code (Code: String; var Rez: String); Begin // Условно говоря, то, что ниже это база шифровки. Т.е. символы (слова, фразы) которые знает программа. If code='0' then Rez:='5'; If code='1' then Rez:='й'; If code='2' then Rez:='ы'; If code='3' then Rez:='м'; If code='4' then Rez:='9'; If code='5' then Rez:='8'; If code='6' then Rez:='*'; If code='7' then Rez:='-'; If code='8' then Rez:='+'; If code='9' then Rez:='!'; End; Procedure Decode (Code: String; var Rez: String); Begin // Условно говоря, то, что ниже это база расшифровки. Т.е. символы (слова, фразы) которые знает программа. If code='5' then Rez:='0'; If code='й' then Rez:='1'; If code='ы' then Rez:='2'; If code='м' then Rez:='3'; If code='9' then Rez:='4'; If code='8' then Rez:='5'; If code='*' then Rez:='6'; If code='-' then Rez:='7'; If code='+' then Rez:='8'; If code='!' then Rez:='9'; End; Теперь в событии OnClick в Button1 и Button2 пишем: Procedure TForm1.Button1Click (Sender: TObject); Var Result: String; //Переменная нужна для хранения результата Begin Code(Edit1.Text, Result); //Процедура берёт текст из Edit1 и сверяет с базой и если не находит то результат будет пустое значение (т.е. Result:='' ). Edit1.Text:=Result; End; Procedure TForm1.Button2Click (Sender: TObject); Var Result: String; //Переменная нужна для хранения результата Begin Decode(Edit1.Text, Result); //Процедура берёт текст из Edit1 и сверяет с базой и если не находит то результат будет пустое значение (т.е. Result:='' ). Edit1.Text:=Result; End; --- Второй способ шифрования производится путём изменения "номера" символа. Function Crypt (Text, Key: String; Encode: Boolean): String; Var I, KeyLength: integer; Sign: ShortInt; Begin KeyLength:=Length (Key); If Encode then Sign:=-1 else Sign:=1; //шифровать или расшифровывать? For I:=1 to Length (Text) do //код символа исходного текста складывается с кодом символа ключа // пароль при этом умножается Text[I]:=Chr (ord (Text[I]) +Sign*ord (Key[I mod KeyLength+1])); //результат усилий Result:=Text; End; Разберём по порядку:
Begin //Если шифровать Memo1.Text:= Crypt (Memo1.Text, Edit2.Text, false); End; Procedure TForm1.Button4Click (Sender: TObject); Begin //Если расшифровать Memo1.Text:= Crypt (Memo1.Text, Edit2.Text, true); End; Исходник прилагается (для Delphi 7) один на два способа шифрования. Типы данных в DELPHI. Delphi. Kylix Delphi for Linux. Перехватчики событий, сигналы и слоты.. Cмешение цветов с помощью Delphi. Бесконечные генераторы значений на Delphi + Ассемблер. Как научить программу общаться. Главная » Delphi |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |