2015-01-28 4 views
0

Мне действительно интересно.C: Сохранение определенных файлов с уникальными расширениями

Гипотетически, допустим, я хотел сделать программу блокнота, чтобы пользователь мог делать документы. Пользователь может вставить что угодно, без каких-либо ограничений.

Для обеспечения конфиденциальности, чтобы только программа открыла его, могу ли я использовать конкретное (нестандартное) расширение для программы? Например. Сохраните файл как «test.abcz». Если это возможно, могут ли открываться другие программы по умолчанию (слово, блокнот) и видеть содержимое?

Я думал о разработке приложения на основе блокнота. Это звучит довольно просто, и я думаю, что это могло бы помочь в изучении некоторых основ C.

Спасибо! :)

+4

Если файл содержит текст, любая программа, которая может читать текстовый файл, может его прочитать. Расширения не помешают этому. В этом отношении действительно любая программа, которая может открыть файл, может открыть любой файл, независимо от расширения, содержимое просто не имеет смысла для него, если они находятся в другом формате, чем ожидалось.В нижней строке, расширения действительно означают ничего, кроме пользовательского интерфейса, и какая программа запускается при двойном щелчке по ним. –

+1

Расширения на самом деле ничего не делают, это всего лишь намек на ОС, какую программу использовать для ее открытия, а также для самих программ. – BWG

ответ

0

Единственный способ сделать содержимое документа нечитаемым другим программным обеспечением - применить к нему какое-либо преобразование (криптографию), которое может быть декодировано только вашим программным обеспечением или эквивалентным программным обеспечением, использующим один и тот же криптоалгоритм пока у вас есть «ключ».

Расширение файла является лишь подсказкой к файловому менеджеру, поэтому он может открыть связанное с ним программное обеспечение, но ничто не останавливается, чтобы вручную выбрать программное обеспечение или попытаться открыть файл непосредственно в приложении.

Если вы хотите немного обучить, вы можете попытаться реализовать блокнот, который сохраняет файл с помощью алгоритма ROT13.

+0

Спасибо! Это именно то, что я искал! – HowbeitGirl

0

В техническом смысле, да.

К примеру, даже EXE-файлы можно читать (не то, что это имеет смысл):

1. Rename to .txt from .exe 
2. Open in notepad.exe 

Реалистично, конфиденциальность данных обеспечивается, если это не совершенно очевидно, формат (обычный текст)

Расширение - это способ идентификации программы для системы и фактической программы, а не для конечного пользователя.

3

Расширения не имеют никакого отношения к возможности читать контент.

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

Вы можете проверить это самостоятельно, переименовав текстовый документ в something.mp3 и просмотрев содержимое в блокноте.

Если содержание может быть понято программой - программа может ее открыть. Таким образом, текстовые файлы могут быть просмотрены многими разными редакторами, но они не могут «понять» файлы .mp3 (ну, как правило). Файлы мультимедиа могут использоваться моими медиаплеерами, но не редакторами и т. Д. ...

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

+1

Я хочу добавить, что обфускация не является безопасностью. Я думаю, что это применимо в случае OP. –

+0

Что вы подразумеваете под obfusctaion? Шифрование, которое я придумал, может быть чем угодно, от необходимости вводить пароль при запуске программы и расшифровать сложное шифрование до простого Цезаря-Шифра, который сдвигает символы в алфавите. –

+2

Да, я не нападаю на ваш ответ или что-то еще. Я просто говорю, что OP должен знать, что обфускация - попытка скрыть конфиденциальную информацию «умными» способами без шифрования - это не то, как кто-то должен иметь дело с применением такого рода. Ваш ответ охватывает все остальное, что ему может понадобиться знать. –

Смежные вопросы