| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Совмещение и кодирование файлов |
| Автор: PSYx 14.11.2005, 13:30 |
| Привет, помогите решить проблемку: Есть 2 разных файла со своими структурами. Нужно сна4ала объединить их(4то бы структура сохранилась- ведь потом их ещё разъединять придётся!) а затем закодировать(при4ём 4тобы при декоде структура живой осталась!). При4ём желательно 4тоб кодик не сильно мудрёный был! Спасибо. |
| Автор: z-END 14.11.2005, 13:32 |
| самый простой кодик: берем WinRAR создаем архив и паролируем его |
| Автор: PSYx 14.11.2005, 14:04 |
| не прикалуйся! мне ж это програмно сделать надо! |
| Автор: _hunter 14.11.2005, 14:32 |
| самый простой кодирование -- XOR-ом пройдись по всему буфферу насчет объекдинения -- два ресурса создай... + вот: http://forum.vingrad.ru/index.php?showtopic=70314 |
| Автор: z-END 14.11.2005, 16:15 | ||
а я про что?! в DRKB есть пример как пользоваться библиотекой winRAR |
| Автор: ~FoX~ 15.11.2005, 10:16 |
| Для использования библиотеки WinRar для архивирования - за нее нужно денежку отдать... |
| Автор: PSYx 15.11.2005, 10:17 | ||||||||
Спасибо, это уже ближе к теме! Добавлено @ 10:18
Да нет же - я СВОЙ код без дополнительных компонентов написать должен! Добавлено @ 10:20
.. тем более, ведь прога, которую я пишу- не едини4ная(и не для ли4ного использования)! Юзать её будут все кому ни попади. |
| Автор: _hunter 15.11.2005, 11:40 |
| тогда юзай банальный XOR. если слишком просто покажется -- иди в раздел алгоритмы и там про шифрование читай... |
| Автор: Snowy 15.11.2005, 12:47 | ||||
Вот, нарисовал смешной xorный алгоритм:
Юзается так:
Можно наоборот - для кодирования 2 раз, для декодирования 1. Можно для кодирования 1 раз, для второго кодирования 1 раз, для декодирования еще раз. Вобщем по данному алгоритму данные принимают свое первоначальное значение после третьего кодирования. (забавный эффект)... Ну и сам алгоритм чуть посложнее для взлома, чем обычный xor. Для большей надежности, можно к данным приклеивать рэндомный хвост. Тогда алгоритм станет вполне устойчивым, ибо хвост при кодировании влияет на кодируемое слово. |
| Автор: PSYx 15.11.2005, 13:07 |
| не выйдет! я файлы кодирую, а Дэлфя при этом ( s[i]:=chr(ord(s[i]) xor ord(s[Length(s)-i+1]));) некоторые символы воспринимает как, скажем переход каретки. Этот метод я уже пробовал- не полу4ается так кодировать! Структура проги неизменно сбивается! |
| Автор: Snowy 15.11.2005, 13:36 | ||
Все выйдет. Читаешь через TFileStream в string. string oтдаешь функции. Затем обратно из стринга сохраняешь в стрим. А стрингу все равно, что там в нем. Хоть каретки, хоть 0. Работает независимо от этого. Это, если бы ты работал с TextFile, то да. А так все нормально. |
| Автор: PSYx 15.11.2005, 13:44 |
| Дак в том то и дело 4то 4асть инфы в файлах- в текстовом виде!!! |
| Автор: Snowy 15.11.2005, 13:46 | ||||
Вот код.
Для декодирования, соответственно s:=Code(s); вызвать 2 раза. Или весь код 2 раза (но это дольше). Добавлено @ 13:47
Да все равно. Работаем мы с байтами, а текст там или картинка - все равно. |
| Автор: PSYx 15.11.2005, 13:50 |
| То4но? Ну ладно, СПАСИБО ща мостить в код на4ну! |
| Автор: Snowy 15.11.2005, 13:57 |
| Кстати в данную схему можно еще добавить ZLib компрессию, а потом ее закодить. Тогда вообще без дезассемблирования восстановить будет нереально. |
| Автор: PSYx 16.11.2005, 10:01 |
| Гм, не, это - уже слишком, у меня таких требований проге нет. Спасибо, всё сработало как надо. |