|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.06.2011, 23:36 | #1 |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
Шифрование алгоритмом AES (также известный как Rijndael)
Люди не проходим мимо! Помогите, кто чем сможет!
А то пролазил и этот форум и много других, и на интернет потратил больше 2 дней а результата 0. Проблема в следующем, пишу диплом, и мне надо организовать передачу зашифрованных данных (тестовых сообщений) по сети, алгоритмом AES. Я нашел исходник относительно нормальный, но проблема в том что он текст сохраняет в файл а потом уж для дешифрации считывает зашифрованный текст из файла, у меня как бы получилось сделать что бы он зашифровывал не в файл, а чисто так, что бы сразу передавался зашифрованное сообщение, но с реализацией расшифровки возникли проблемы, я пытался отвязать его от файла. Сделал его так что бы он не расшифровывал полученную строку, но он на дешифрации всегда выдает ошибку. Помогите разобраться, а то я сам не в силах, или поделитесь с нормальным исходником этого алгоритма, если у кого то есть он конечно. Вот исходни и сам проект если кому то надо посмотреть. Извиняйте что без комментов. Код:
|
14.06.2011, 23:40 | #2 |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
Вот код нажатия кнопок Ширфации и расшифровки
Код:
Вот сама прога если кому надо |
15.06.2011, 01:09 | #3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
дык, а типы? не храни в edtText.Text, заведи переменную типа ansistring:
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
15.06.2011, 01:38 | #4 |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
у меня как бы переменная есть strtmp:string; т.е. мне просто поменать ее типа, и что это за ти ansistring, если не секрет?
|
15.06.2011, 10:22 | #5 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
не секрет, жмакаешь F1 - в справке все есть ...просто вы используете "свойство компонента" для хранения, а там могут быть непечатаемые символы.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
15.06.2011, 11:58 | #6 |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
та у меня походу сам алгоритм немного глючный, он через раз расшифровывает, может ли кто-то поделится нормальным AES алгоритмом? И подскажите когда я шифрую сообщения мне в какой тип переменной сохранять ansistring или string
|
15.06.2011, 13:32 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) я не знаю, насколько в вашем случае правильно реализован AES
я бы рекомендовал взять готовую бесплатную рабочую библиотечку. например, Delphi Encryption Compendium by Hagen Reddmann 2) Код:
главное, не использовать представление Text у визуальных компонентов (Memo.Text, Edit.Text и т.п.)! Они заточены под отображение ПЕЧАТНЫХ символов. darek13, посмотрите, в пост #3 raxp уже абсолютно внятно и чётко Вам всё разжевал. Читайте пост #3 до полного просветления! (а оно в том, что надо использовать переменную ss и НЕ НАДО ИСПОЛЬЗОВАТЬ edtText.text ) |
15.06.2011, 14:43 | #8 | |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
Serge_Bliznykov
Извиняюсь если покажется грубо, но говорю сразу это не так, просто это вы не поняли, У меня вообще все по другому реализовано. Во первых по поводу Цитата:
Во вторых, у меня передается зашифрованный текст по сети. Обьясню по подробней: Пользователь который хочет отправить Личное Сообщенеи (ЛС), перед тем как его отправить шифрует своим ключем который состоит из 32 символом, это у нас переменная p:string (этот ключ - это хэш пароля при входе в систему, это все у клиентов), так вот когда клиент отсылает сообщение он шифрует и записывает зашифрованный текст в переменную temp:ansistring и передает даные на сервер, но при отправке сообщенеи отображется в поле чата в МЕМО но в нормально виде, по скольку там оно не шифруется. Сервер когда принимает ЛС он смотри от кого пришло и считывает с БД хэш пароля этого клиента потом берет переменную temp:ansistring где содержится зашифрованное сообщение расшифровывает его так STRTEMP:= decrypt(temp, p);, STRTEMP у меня уже типа string. и затем расшифрованное сообщение выводит в мемо. Но если сообщение не серверу, то он сначала делает все тоже самое, но смотрит кому оно предназначалось, находит этого пользователя, считывает его хэш из БД и шифрует уже расшифрованное сообщение в переменную LSUser:ansistring и отправляет уже зашифрованное опять сообщение дальше, что бы клиент мог расшифровать своим ключем. у мен все работает но через раз, иногда все отлично делает, а иногда когда сервер получает сообщение пишет ошибку что проблема с симвалами, но при этом все эти непечатные символы не имеют никакого отношения к мемо, в мемо выводится только расшифрованное сообщение, просто проблема сама в алгоритме походу |
|
15.06.2011, 14:50 | #9 |
Пользователь
Регистрация: 27.04.2011
Сообщений: 68
|
А сели быть точнее то выводится вот такое сообщение
|
15.06.2011, 15:00 | #10 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> то что я использую готовое, не засчитают надо свой алгоритм что бы был
сейчас вы используете Crypt API от майкрософт, вашего там 1% (не работающий )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование AES | Samara | Помощь студентам | 3 | 29.10.2011 18:10 |
Известный компьютерщик.Немогу распознать | bondik | Свободное общение | 3 | 26.02.2011 22:12 |
Шифрование AES | SergunchikSK | Общие вопросы Delphi | 13 | 25.08.2009 10:36 |
Шифрование алгоритмом RC4 | Alexteks | Общие вопросы Delphi | 0 | 05.05.2009 09:41 |