![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
MrDmitry |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Здравствуйте пишу небольшую программу под заказ по шифрованию данных. Шифровка строки или текстового файла происходит на ура. Но нужно еще и закодировать word и excel документ, а патом раскодировать. Решил делать шифровать по байтово. В общем примерно так
Ошибка project crypt.exe raised exception class EvariantTypeCastError with message 'Could not convert variant of type (error) into type (Booleab)' Решил сделать по другому
Здесь текст из word документа сохраняется в текстовый файл 1.txt. Но проблема в том что я не знаю как сделать обратное преобразование(то есть текст из txt файла перенести в doc) и к тому же таким способом я не смогу кодировать exl файлы ((( Кто что может посоветовать, на тему как можно правильно прочитать все содержимое word или exl документа, сделать над ним нужные действия и сохранить в файл(doc в doc exl соотвествено в exl файл). PS Думал может попробовать преобразовать doc или xls в html а патом уже шифровать как обычный текст файл. Но так и не смог сделать такого преобразования. Это сообщение отредактировал(а) MrDmitry - 28.2.2012, 15:34 |
||||
|
|||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Это сообщение отредактировал(а) Чучмек - 28.2.2012, 16:19 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Дело в том что у меня свой алгоритм шифрования. И он шифрует построчно а не по байтово (В общем понимаю что сам себе противоречу., но вопрос заключается в том, как дернуть все текстовые данные из документа word и/или из ecxel и зашифровать их. Но чтоб при этом при декодировании осталось форматирования от оригинального документа.
Например как кодировать-разкодировать word или excel документ методом замены? Для тех кто не знает что за метод код паскаля:
|
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
Это не правильный подход.
Если так не хочется менять алгоритм шифрования - перекодируй предварительно в base64 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Что значит не правильный подход? Почему?
|
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Придумал как можно "выкрутиться" из своей ситуации но не знаю как это реализовать.
Как через delphi стандартными средствами word можно сохранить документ как xml?? После такого сохранения я бы мог пройтись по получившемуся xml файлу своим шифрованием ) |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
В общем делаю так
Документ преобразуется в xml но почему то вылетает ошибка ( project crypt.exe raised exception class EOleSysError with message 'Операция не доступна' project crypt.exe raised exception class EOleException with message 'Таблица в документе повреждена' как я уже писал, документ преобразуется в xml но код который следует ниже после вызова функции не выполняется (( |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
А рисунки из вордовского документа как хранить будешь?
Да и вообще, вордовский документ, кроме всего, архив. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Чесно говоря не думал. Но сейчас бы с этой ошибкой разобраться )
|
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
На вот, дарю
Читай из файла по 96,192,384 байт (кратно 3) кодируй в base64 строку дальше кодируй своими функциями, сохраняй в текстовый файл. Конечный файл неплохо еще упаковать. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Ого огромное спасибо!
А как работать с этими процедурами? (( procedure Base64encode(data:pointer;datal:cardinal;resultbuf:pansichar);stdcall; data-сам файл? datal - размер файла? resultbuf - что за символ ему подсовывать? o0 Это сообщение отредактировал(а) MrDmitry - 1.3.2012, 15:50 |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Блин. Вот я глупый оказывается (((((((((((((
Не могу эту процедуру заиспользовать ( не понимаю что её нужно подсовывать если учитывать что ей нужно как то подсунуть файл. Как я понял data-c:/1.doc datal - размер файла resultbuf - а что сюда надо я не понял. Или процедуру надо как то в цикле вызывать чтоб подсовывать сюда символ? |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
После выполнения Base64encode m2 ,будет содержать строку Base64 кода. если rb<192 - необходимо выравнивание нулями. Подробнее, если не разберешься, напишу позже. Это сообщение отредактировал(а) Чучмек - 1.3.2012, 18:32 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
спасибо. Было бы хорошо если ты напишешь более подробно, чтоб патом небыло трудностей )
И сразу вопрос.
Получается кодироватся в base64 будет в тодже самый файл который будет указан в переменной h1? Это сообщение отредактировал(а) MrDmitry - 1.3.2012, 22:43 |
|||
|
||||
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Баааалиииин. Я серьезно не понимаю как тем способом который ты мне скинул можно зашифровать файл, учитывая что сам файл я ни где не указываю (
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |