![]() |
|
|
![]()
|
|
| Crash512 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Помогите найти ошибку! Исходник прикрепил...
Вроде всё шифрует и дешифрует... Но в зависимости от введённого пароля он не всегда шифрует текст полностью... Ума не приложу, в чём может быть ошибка... Вот код (лучше посмотрите по исходнику):
Присоединённый файл ( Кол-во скачиваний: 10 )
Blowfish.zip 43,90 Kb |
|||
|
||||
| orthrus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: 4 Всего: 16 |
В свое время тоже реализовывал этот алгоритм и наткнулся на ту же проблему! Проблема решается просто! Работай с файлом напрямую. Ты работаешь с AnsiString и в этом вся проблема, когда шифруешь данные появляются последовательности вида "\0" для строки это обозначает конец!!
шифруется всё полностью, не всё выводится в TMemo, т.е. выводится все до первого "\0", в этом и заключается проблема Это сообщение отредактировал(а) orthrus - 4.12.2007, 10:43 -------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
|||
|
||||
| Crash512 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
А можешь на примере показать?.. А то что-то никак не разбирусь...
|
|||
|
||||
| Crash512 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Если считывать с файла на прямую, ничего не меняется.. Я понял в чём фигня... Просто чтобы передать инфу в TMemo, нужно использовать string... Вот этот момент нужно обойти... Как это сделать?.. Нужно шифрованный текст записать в файл?.. Как его напрямую записать?.. Напишите какой-нибудь примерчик...
|
|||
|
||||
| orthrus |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: 4 Всего: 16 |
При шифровании и дешифровке ты работаешь со строкой (String txt;). Она тебя ограничивает изначально, т.к. operator+= не пишет после символа конца строки"\0", если даже пишет то этого все равно не видно. Надо переделать функции Encrypt() и Decrypt() так что бы они работали с перемеными типа unsigned long, т.е. примерно так:
так же
Циклы из этих функций я бы убрал совсем. Эти функции должны вызываться внутри цикла и обрабатывать один блок в 8-м байт, т.е. 2-а блока по 4-ре байта считаные из файла. Т.е. в этом случае, следует вообще отказаться от текстового представления информации Это сообщение отредактировал(а) orthrus - 5.12.2007, 07:29 -------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
||||
|
|||||
| orthrus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 400 Регистрация: 30.10.2007 Где: г. Усть-Илимск(Ир кутская обл.) Репутация: 4 Всего: 16 |
вот немного переделал твой код, теперь прога работает с файлами напрямую
Это сообщение отредактировал(а) orthrus - 5.12.2007, 09:50 Присоединённый файл ( Кол-во скачиваний: 37 )
Blowfish.rar 10,43 Kb-------------------- У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой ![]() |
|||
|
||||
| Crash512 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Спасибо, так понятней!
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |