DevProg: Блог для программистов

Секреты программирования. Примеры разработки. Обзоры программёрского софта, блогов и форумов и просто полезные советы!

Пишем алгоритм простого шифрования текста на Delphi

Posted by devprog на Июль 21, 2010

Всем привет :),  это моя первая тут публикация, с этого дня  я буду стараться писать для вас почаще и разнообразнее, затрагивая все интересные области как программирования так и многого другого , что думаю будет вам не менее интересно. Итак,  сегодня мы  напишем простое приложение реализующее алгоритм примитивного шифрования ввода текста на Delphi. Простое лишь потому что, на его основе можно будет написать что-то уже более сложное, что можно будет использовать в наших программах, где шифрование может быть необходимо, например в анти-кейлогерах,  но и также  в icq клиентах,  различных интернет мессенджерах передающих текстовые сообщения.

Что собственно приложение будет делать? Оно будет шифровать текст, который вы будите набирать в поле ввода, моментально отображая этот текст в зашифрованном по заданному нами алгоритму виде, а так же расшифровывать его при нажатии на кнопку и обратно.

Шифровать будем элементарным алгоритмом. Каждый символ будет заменятся на следующий за ним в таблице ASCII значений.

В дельфи выбираете следующие компоненты и перетаскиваете их на форму мышкой.

  1. Edit
  2. Button
  3. Label

Нам потребуется, обрабатывать следующие события вышеперечисленных компонентов :

  • Form1: OnCreate
  • Edit1: OnKeyPress
  • Button1: OnClick

Немного расскажу о наших событиях. Когда вы нажимаете на символьной клавише на клавиатуре, генерируется событие OnKeyPress, и когда это событие произошло в атрибуты этого события заноситься ASCII-код символа  нажатой клавиши. И таким образом, если мы перехватим это событие, еще до его завершения, то мы сможем заменить и код символа этой клавиши на наш, который и отобразиться у нас в поле ввода.

Итак напишем код , для выполнения его  нашими обработчиками событий,  примерно вот что у нас должно получиться :

procedure  TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin

//Заменяем перехваченный символ на следующий по порядку
Key := Chr(Ord(Key) + 1)
end;

procedure TForm1.Button1Click( Sender: TObject);
var

Ret: AnsiString; //Тип данных  — ANSI строка(массив символов)
I: Integer; // Тип данные — целые числа
begin
//копируем то что находиться в поле ввода во вспомогательную строку
//и заменяем каждый символ в строке на предыдущий по таблице ASCII

Ret := Edit1.Text;
for I := 1 to Length(Ret) do
Ret[I] := Chr(Ord(Ret[I]) — 1)
//копируем результат обратно в поле ввода по нажатию на кнопку
Edit1.Text := Ret;
end;

После чего скомпилируем нажав (Run |>) и можете протестировать :)

Если что-то не получается пишите  в комментарии, всегда буду рад вам помочь разобраться ! :)

Реклама

комментариев 9 to “Пишем алгоритм простого шифрования текста на Delphi”

  1. Robo said

    C Начинанием ;)

    >> Каждый символ будет заменятся на следующий за ним в таблице ANCII значений.
    Исправь, таблица называется ASCII :)

  2. devprog said

    Robo, да что-то пропустил, спасибо что заметил, исправил :)

  3. Oemor said

    Проблема такого метода в том,что если данные к примеру нужно хранить в БД (в моем случае MS SQL S) некоторые символы недопустимы для записи

  4. Pasha said

    … не пашет этот код ))) Вы наверно чейто пропустили ?)))

  5. Li said

    А если нужно заменить каждый вводимый символ на соответствующий есу из другого алфавита например?

  6. :/ said

    Говно, такой шифр вскрывается за секунды.

  7. prof said

    и как не стыдно публиковать такую ахинею… автору место в ПТУ, а не за компьютером. удалите свой блог и не засоряйте инет своими дошкольными «изобретениями»… шут гороховый…

  8. Вадим said

    «…будЕте набирать…»

  9. BryGuFu said

    Регистрация юридических лиц и ИП Брянск (содействие)
    Регистрация изменений (смена паспортных данных, смена руководителя смена адреса увеличение и уменьшение уставного капитала) (содействие)
    Ликвидация юридических лиц и ИП Брянск (содействие)
    Представительство в суде общей юрисдикции
    Представительство в арбитражном суде
    Защита по делу об административном правонарушении
    +79529687403 Олег Юридические услуги Брянск

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: