![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зашифровать файл [D7]
Choovak © (2005-07-28 12:05:00)Как можно зашифровать файл чтобы юзер не смог его открыть?
Lamer@fools.ua (2005-07-29 14:39:00) [1]>> Jeer © (29.07.05 14:34) [18]
См. [13].
Jeer (2005-07-29 14:34:00) [2]Lamer@fools.ua © (29.07.05 13:13) [17]
>Понятие "открыть файл" (а в формулировке автора "чтобы юзер не >смог его открыть") подразумевает, насколько я понимаю, операцию >открытия файла, используя штатные средства ОС.
..операция открытия файла приложением, способным работать с данным форматом через штатные средства ОС.
Но можно открыть файл иными приложениями, не понимающими специфический формат, например hex-редактором.
Именно эта поправка имелась в виду в посте Jeer © (28.07.05 12:09) [1], поясняющая, что зашифрованный файл все равно можно открыть, но без доступа к смысловому содержимому.
Lamer@fools.ua (2005-07-29 13:13:00) [3]>> Jeer © (29.07.05 11:40) [15]
Понятие "открыть файл" (а в формулировке автора "чтобы юзер не смог его открыть") подразумевает, насколько я понимаю, операцию открытия файла, используя штатные средства ОС. Если имеется доступ к диску минуя механизмы ОС доступа к файлам, то тут запретить открытьфайл проблематично, конечно. Хотя бы потому, что можно и посекторно/покластерно читать данные.
А насчёт намека "на использование одновременно двух методов защиты" Вы неправы. Я имел в виду только шифрование содержимого.
Jeer (2005-07-29 11:51:00) [4]Choovak (28.07.05 20:21) [14]
Начни с изучения чужих форматов.
Jeer (2005-07-29 11:40:00) [5]Lamer@fools.ua © (28.07.05 12:15) [2]
Для ламера из fools.ua доступно объясняю:
1. Средства шифрации и ограничения доступа (права доступа) выполняют функцию предотвращения доступа к защищаемому содержимому.
2. Средства шифрации не ограничивают физический доступ, но при этом без выполнения дешифрации получить доступ к смысловому содержимому невозможно.
3. Права доступа, ограничивая физический доступ не защищают содержимое от всех тех, кто имеет право на физический доступ.
4. Разумеется, возможно одновременные шифрация и ограничение доступа
В вашем посте:
"Ну в NTFS можно так зашифровать, что и открыть не сможет..."
содержится намек на использование одновременно двух методов защиты, но он некорректен, поскольку шифрация не означает ограничение физического доступа, т.е. запрет на открытие.
А перевели Вы верно, спору нет, но это относится к шифрации данных, а не правам доступа к файлам.
Choovak (2005-07-28 20:21:00) [6]
> Antonn © (28.07.05 16:28) [10]
Спасибо большое, учту как вариант
> Андрей Молчанов (28.07.05 18:26) [12]
Не, это совсем не то
А вообще, хотелось бы почитать, как свой формат написать...
Lamer@fools.ua (2005-07-28 18:51:00) [7]>> Jeer © (28.07.05 18:08) [11]
> Видишь ли..
Открыть файл после этого все равно можно:)
Другое дело, что не прочитать.
Поэтому - точнее выражаемся.
Простите, сенсей, мою огромную тупизну, но у меня функция CreateFile в операторе
HANDLE hFile = CreateFile(fn, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);
(где fn - строка с именем encrypted файла)
возвращает INVALID_HANDLE_VALUE, а GetLastError() возвращает 5 (ERROR_ACCESS_DENIED).
Может подскажите, что я делаю не так?
Андрей Молчанов (2005-07-28 18:26:00) [8]Самое простое - поменять расширение на какое-нибудь *.ens. Но это так, на дурака.
Jeer (2005-07-28 18:08:00) [9]Lamer@fools.ua © (28.07.05 14:48) [9]
Видишь ли..
Открыть файл после этого все равно можно:)
Другое дело, что не прочитать.
Поэтому - точнее выражаемся.
Antonn (2005-07-28 16:28:00) [10]Choovak (28.07.05 14:20) [7]
можно еще над кодом поработать:
procedure InvertStream(var _M:TMemoryStream);
var _M_temp:TmemoryStream; i:integer;
begin
_M_temp:=TmemoryStream.Create;
try
_M_temp.SetSize(_m.Size);
_m.Position:=_m.Size;
for i:=_m.Size-1 downto 0 do begin
_m.Position:=i;
_M_temp.CopyFrom(_m,1);
end;
_m.Position:=0;
_M_temp.Position:=0;
_m.CopyFrom(_M_temp,_M_temp.Size);
finally
_M_temp.Free;
end;
end;
Lamer@fools.ua (2005-07-28 14:48:00) [11]>> Jeer © (28.07.05 12:53) [4]
> Это не шифрация, а ограничение доступа.
Наверное, у меня с английским очень плохо. Я думал, что "Encrypt contents to secure data" означает "Шифровать содержимое для обеспечения безопасности данных". А оказывается, что это просто ограничение доступа.
Polevi (2005-07-28 14:22:00) [12]можно еще компакт диск поцарапать, верный способ
Choovak (2005-07-28 14:20:00) [13]
> грузани в TmemoryStream и сохрани "задом-на-перед".
А можно код?
Antonn (2005-07-28 14:17:00) [14]Choovak (28.07.05 13:05) [5]
грузани в TmemoryStream и сохрани "задом-на-перед". Или просто добавь пару байт в начало. или сожми zlib'ом.
Choovak (2005-07-28 13:05:00) [15]
> Придумай свой формат и напиши проигрыватель.
>
> А так - любые средства шифрации бинарных файлов или изменение
> структуры заголовка wave-файла
Может хотя бы ссылка найдётся, где обо всём этом можно прочитать?
Jeer (2005-07-28 12:53:00) [16]Lamer@fools.ua © (28.07.05 12:15) [2]
Это не шифрация, а ограничение доступа.
Choovak (28.07.05 12:15) [3]
Придумай свой формат и напиши проигрыватель.
А так - любые средства шифрации бинарных файлов или изменение структуры заголовка wave-файла
Choovak (2005-07-28 12:15:00) [17]Нет я имею ввиду например есть файл *.WAV. Надо чтобы его нельзя было через Winamp проиграть
Lamer@fools.ua (2005-07-28 12:15:00) [18]Ну в NTFS можно так зашифровать, что и открыть не сможет...
Jeer (2005-07-28 12:09:00) [19]Открыть все равно сможет.