• Главная
  • Исходники Delphi
  • Справочники Delphi
  • Книги Delphi
  • Основы Delphi
  • библиотека Delphi исходников
  • Форум
  • Блоги

Последние записи

  • Прозрачность тайлсета в TPNGImage
  • Как сделать VBA макрос в excel
  • Поиск по столбцу 1-ого не нулевого значения (формулой в Microsoft Office Excel)
  • Простановка единиц в ячейки под объектами (Microsoft Office Excel)
  • Расчет затраченного времени между определенным рабочим временем (формулой в Microsoft Office Excel)
  • Мигающий экран на Assembler
  • VBA-макрос по копированию 10 строчек в выбранном диапазоне в Microsoft Office Excel
  • Копирование только нужного диапазона в Microsoft Office Excel
  • Перенос диапазона стоки в Microsoft Office Excel на другой лист по условию
  • Мелодия в Pascal.ABC.Net с помощью System.Console.Beep — задержка воспроизведения звука

made in programmersforum 8

programmersforum8

  • .NET
  • ASP.NET
  • assembler
  • Basic
  • c/c++
  • CMS
  • Delphi
  • HTML
  • iPhone
  • Java
  • JavaScript
  • Linux
  • Pascal
  • Perl
  • Photoshop
  • php
  • Python
  • Ruby
  • SEO
  • sql
  • VBA
  • Win Api
  • Windows
  • XML и XSLT
  • Администрирование ОС
  • Апгрейды
  • Архив
  • Безопасность
  • Блоги
  • Веб-аналитика
  • Железо
  • Журнал
  • Заметки
  • Имейдж
  • Интервью
  • Исходники
  • Новости
  • Общалка
  • Операционные системы
  • Пост-обзор
  • Профлитература
  • Рассылка
  • Реклама
  • си шарп
  • Советы
  • Софт
  • Статьи
  • Топик-обзор
  • Файлы








28th
Авг

Шифрование по таблице соответсвия, пример delphi

Posted by admin under Исходники, Статьи

    Привет всем это моя первая статья, поэтому не судите строго :.

     В этой статье я расскажу про шифрование данных.

    Первое что надо знать, что это вообще такое и для чего служит:

     Первый способ шифрования производится путём замены целых фраз, слов, слогов или отд. букв цифрами или буквами в различных комбинациях на основе заранее принятой системы, являющейся соответственно ключом для расшифровки текста. Применяется также двойной Шифр, требующий двойной расшифровки при помощи двух ключей. Шифр не всегда гарантирует абсолютную тайну секретной переписки, т.к. даже к очень сложным Шифрам может быть подобран ключ путём расчётов, вычислений повторяемости отдельных знаков и т.п.

     Самый простой способ сделать такое шифрование, по-моему, это чтение текста побуквенно. Для начала разместим на форме 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:=Chr (ord (Text) +Sign*ord (Key));
   //результат усилий
   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) один на два способа шифрования.

     скачать исходник


     Simply-Art http://Project-SA.by.ru

Похожие статьи

  • Зашифровать текстовый файл
  • Вставка произвольных непечатных символов перед шифрованием и удаление рандомных знаков после расшифровки
  • Простенький парсер псевдо-HTML на Delphi
  • Поиск и замена файлов в заданных каталогах
  • Вывод стилем Xor
  • Программы для самых маленьких
  • Маленькие помощники программиста
  • Парсер сайта на Делфи.
  • Программа для получения данных об устройствах ПК
  • Лимит на запуск программы
Теги: Delphi | программы | шифрование








© Copyright "Клуб программистов" – материалы по Delphi и С++. Создание и продвижние сайта - Веб-сателлит.