Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Пароль для доступа к файлу


Автор: TheSpecialOne 5.10.2012, 09:28
Здравствуйте уважаемые программисты! Мне нужно сделать так, чтоб программа или пользователь могли получить доступ к чтению и записи, например, файла с расширением .txt или .dat, если известен код доступа. Возможно ли такое на С++?

Автор: Dem_max 5.10.2012, 09:36
Да, запоролить RAR архиватором.

Автор: andra 5.10.2012, 10:30
Организация работы с файлами средствами C

Объявление файла
    FILE *идентификатор;
Пример
    FILE *f;
Открытие файла:
    fopen(имя физического файла, режим доступа)
Режим доступа — строка, указывающая режим открытия файла файла и тип файла
Типы файла: бинарный (b); текстовый (t)
Значение    Описание
r    Файл открывается только для чтения
w    Файл открывается только для записи. Если соответствующий физический файл существует, он будет перезаписан
a    Файл открывается для записи в конец (для дозаписи) или создается, если не существует
r+    Файл открывается для чтения и записи.
w+    Файл открывается для записи и чтения. Если соответствующий физический файл существует, он будет перезаписан
a+    Файл открывается для записи в конец (для дозаписи) или создается, если не существует

Автор: feodorv 5.10.2012, 10:51
andra, к чему это?
TheSpecialOne, файл можно зашифровать, при этом без пароля доступ к зашифрованному содержимому будет, а к расшифрованному - нет. Такой вариант устроит?

Автор: TheSpecialOne 5.10.2012, 12:42
Цитата(Dem_max @  5.10.2012,  09:36 Найти цитируемый пост)
Да, запоролить RAR архиватором.

А программа, знающая пароль, сможет такой файл разархивировать, внести изменения и снова заархивировать? Если да, то было бы неплохо пример кода увидеть.
  
Цитата(feodorv @  5.10.2012,  10:51 Найти цитируемый пост)
TheSpecialOne, файл можно зашифровать, при этом без пароля доступ к зашифрованному содержимому будет, а к расшифрованному - нет. Такой вариант устроит? 

Шифрование конечно же решит эту проблему, но разве нет более простых механизмов? Пользователь не должен получать доступ к содержимому файла, а программа должна получить доступ к чтению и модификации только если знает пароль (код доступа, ключ, свертку).

Автор: bsa 5.10.2012, 14:03
Цитата(TheSpecialOne @  5.10.2012,  13:42 Найти цитируемый пост)
разве нет более простых механизмов?
нет

Автор: feodorv 5.10.2012, 16:53
Цитата(TheSpecialOne @  5.10.2012,  13:42 Найти цитируемый пост)
Пользователь не должен получать доступ к содержимому файла, а программа должна получить доступ к чтению и модификации только если знает пароль (код доступа, ключ, свертку).

Гм. Могу предложить такую схему, которую, может быть, вообще и нельзя реализовать.
Заведите в системе особого пользователя, от его имени создайте директорию так, чтобы доступ к этой директории имел только этот пользователь (правда, всё равно администратор/root будут иметь доступ), в этой директории храните свой файл с доступом только этому пользователю. 
Тогда для доступа к чтению-записи файла программа как-то должна себя импесонифицировать с этим пользователем путём регистрации в системе с нужным логином/паролем.

Существуют ещё специализированные надстройки над файловыми системами (для NTFS такая надстройка точно существует), которые позволяют ограничить доступ к избранным файлам паролем. Но тогда у пользователя должна быть установлена такая надстройка.

Автор: TheSpecialOne 6.10.2012, 15:07
Спасибо за помощь, с этим вопросом я разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)