2010-09-28 2 views
1

в моем программном обеспечении Mac Мне нужно расшифровать файл, и после того, как я сделаю свои операции над ним, я удалю его. Моя проблема: где я могу поместить этот файл? Я не хочу показывать это пользователю.Где можно разместить временные файлы, которые я не хочу показывать пользователю?

ответ

4

Следующая API даст вам путь к каталогу, который «из пути»: «? Расшифровать файл в месте, пользователь не может получить доступ к»

NSTemporaryDirectory(); 

ли вы имеете в виду Любое место, на которое ваше приложение может писать, может видеть пользователь. И теоретически пользователь может получить доступ к любому биту или байту на компьютере, к которому у них есть физический доступ.

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

Не могли бы вы рассказать нам больше о своей конечной цели здесь? Вы пытаетесь внедрить схему защиты от копирования/копирования? Вы пытаетесь предотвратить обман в игре? Вы просто не доверяете своему пользователю? Какие?

+0

Извините, Джонатан, вы правы. Я не объяснил свою конечную цель: /. Дешифрованный файл - это файл, который будет выполняться вторичным программным обеспечением, поэтому я не могу хранить его в памяти :( – Alleria

1

Я думаю, что лучше всего держать его в памяти.

Если это не вариант, это зависит от того, что вы хотите с ним делать. Возможно, вы можете открыть временный файл и немедленно удалить его - сохранить корректный дескриптор файла открытым, но не поддерживать ссылку на него на диске.

Другой вариант - возможно, вы можете получить свою вторичную программу для чтения из STDIN или трубы? Затем вы можете расшифровать файл и передать его содержимое через трубку? Ясно, что чем сложнее этот процесс, тем более слабыми звеньями он может быть, но иногда вам просто нужно заставить все работать.

+0

+1 для хранения данных в памяти. Временная директория и файлы все еще могут оставаться в файловой системе пользователя, если приложение выходит бесцеремонно –

+0

Но даже в памяти черная шляпа может получить к ней доступ. Не зная больше о намерениях Алерии, мы не знаем правильного решения. –

+0

@Deep Kapadia - Я думал открыть файл и сразу же удалил В этот момент файловый дескриптор существует только в памяти и будет полностью удален, когда приложение будет существовать по какой-либо причине. – zigdon

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