![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
aleks0506 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 29.11.2012 Репутация: нет Всего: нет |
Здравствуйте Уважаемые! Помогите решить, казалось бы, простую задачку:
есть такая библиотека DCPcrypt (для работы с шифрованием), в ней есть функция для шифрования файла, выглядит она так: function TForm1.EncryptFile(Source, Dest, Password: string): Boolean; var DCP_rijndael1: TDCP_rijndael; SourceStream, DestStream: TFileStream; begin Result := True; try SourceStream := TFileStream.Create(Source, fmOpenRead); DestStream := TFileStream.Create(Dest, fmCreate); DCP_rijndael1 := TDCP_rijndael.Create(Self); DCP_rijndael1.InitStr(Password, TDCP_sha1); DCP_rijndael1.EncryptStream(SourceStream, DestStream, SourceStream.Size); DCP_rijndael1.Burn; DCP_rijndael1.Free; DestStream.Free; SourceStream.Free; except Result := False; end; end; Все бы хорошо, если бы не одно БОЛЬШОЕ НО - на вход ЭТОЙ функции нужно подавать ФАЙЛ, а мне нужно подать ОБЪЕКТ! (т.к. данные которые нужно зашифровать находятся в объекте TSringList) я попытался переделать эту функцию с использованием TStringStream - вот что получилось: function TForm1.EncryptFileToStream(Source, Password: string): Boolean; var DCP_rijndael1: TDCP_rijndael; DestStream: TFileStream; stream: TStringStream; begin Result := True; try DestStream := TFileStream.Create(Source, fmOpenRead); stream:=TStringStream.Create(''); tstTV.SaveToStream(stream); // tstTV это глобальный объект-содержит список строк stream.Position := 0; DCP_rijndael1 := TDCP_rijndael.Create(Self); DCP_rijndael1.InitStr(Password, TDCP_sha1); DCP_rijndael1.EncryptStream(stream, DestStream, stream.Size); DCP_rijndael1.Burn; DCP_rijndael1.Free; stream.Free; DestStream.Free; except Result := False; end; end; Вроде все правильно! Ошибок не выдает! Код выполняется - но файл даже НЕ СОХРАНЯЕТСЯ...(даже не создается) (все проверил - данные в объекте tstTV есть(набор строк)) Как думаете, в чем может быть проблема? Поделитесь мыслями, умоляю! |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Вопрос, зачем шифровать объект?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Если бы это был SourceStream, то вопросов не было бы. А так: 1. Открытие только на чтение, что автоматически не дает ничего записать в этот файловый поток. 2. Опять-таки, открытие только на чтение - а если файла нет, кто его создаст? Это сообщение отредактировал(а) kami - 29.11.2012, 22:55 |
|||
|
||||
aleks0506 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 29.11.2012 Репутация: нет Всего: нет |
Вопрос решен!
Kami - Огромное СПАСИБО!) p.s. загвоздка действительно была в том, что открытие файла происходило только на чтение... (стыдно мне - за такую невнимательность) Это сообщение отредактировал(а) aleks0506 - 30.11.2012, 07:07 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |