(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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;

Разберём по порядку:

  1. Это две функции в одной параметром Encode мы выбираем шифровать или расшифровывать.
  2. Key - ключ. Ключом является строка (до 2Гб). Она может содержать любые символы, включая пробелы.
  3. Text здесь нужно ввести либо шифруемый либо зашифрованный текст.
  4. Result это для того чтоб не создавать переменную для хранения результата в обработчике нажатия на кнопку.
  5. В обработчике нажатия на кнопку пишем:

Procedure TForm1.Button3Click (Sender: TObject);
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) один на два способа шифрования.

Файлы для загрузки


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Micro Focus/Borland »
Написать редактору 
 Рекомендовать » Дата публикации: 07.10.2006 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
КОМПАС-3D v17 Home
C. Ghisler & Co (Total Commander). Total Commander/Тотал Командер: Для юридических лиц: 1 копия
IBM Domino Enterprise Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
Traffic Inspector GOLD 5 Учетных записей
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
eManual - электронные книги и техническая документация
Вопросы и ответы по MS SQL Server
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Онлайн покер (6)
Подскажите, пожалуйста, где можно научиться играть в покер в интернете и зарабатывать на этом?
 
Опытная и сработанная команда разработчиков ищет новые проекты (4)
Опытная и сработанная команда разработчиков ищет новые проекты. Работаем вместе уже почти 10...
 
Можно ли зарабатывать в интернете играя в казино ? (4)
Можно ли зарабатывать в интернете играя в казино ?
 
Рейтинг лучших букмекерских контор в России (3)
Рейтинг букмекеров и топ-10 лучших https://superbet.guru/bookmakers-rating/ в 2020-2021 году....
 
Подскажите лучшее онлайн казино (7)
Вот нашёл интересную игровую площадку, и это онлайн казино Вавада. Может кто что подсказать по...
 
 
 



    
rambler's top100 Rambler's Top100