Может ли кто-нибудь помочь мне обезопасить содержимое папки «Документы»?
Защитить содержимое в каталоге документов
Ответы (5)
Использовать:
- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:(NSError **)errorPtr
с одним из вариантов защиты файлов:
NSDataWritingFileProtectionComplete (iOS 4.0)
NSDataWritingFileProtectionCompleteUnlessOpen (iOS 5.0)
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication (iOS 5.0)
См.: Документация Apple
NSDataWritingFileProtectionComplete
В этом случае файл хранится в зашифрованном формате и может быть прочитан или записан только тогда, когда устройство разблокировано. Во всех остальных случаях попытки чтения и записи файла приводят к сбою.
Примечание. При самостоятельном шифровании возникает проблема с хранением ключей, и лучшим решением будет использование цепочки для ключей. Обработка ключей — самая большая проблема, и с ней справляются методы NSData.
NSDataWritingFileProtectionComplete
только ваша программа может прочитать файл. Чтобы пойти выше, потребуется ввести пароль для каждого использования, вероятно, не то, что вы хотите. Шифрование и жесткое кодирование ключа шифрования в вашей программе возможно, но снижает эффективность — что может быть нормально, вы должны решить, от каких атак вы хотите защититься.
- person zaph; 21.09.2011
Мы не можем защитить файл в каталоге документов. Мы можем сохранить файл во временной папке устройства. Это не может быть доступно никому
используйте шифрование и дешифрование для создания и чтения этих файлов на iphone, возьмите идею отсюда http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html
Алан Куотермейн предоставляет набор инструментов, в котором есть несколько полезных оболочек для криптографических библиотек, чтобы сделать шифрование/дешифрование по-настоящему простым.
Вот ссылка:
Что бы вы ни делали, просто убедитесь, что вы не храните документ на устройстве в незашифрованном виде, даже в течение короткого времени. Всегда храните его в зашифрованном виде. Выполнить любую операцию шифрования в памяти.
Убедитесь, что ни при каких файловых операциях вы не кэшируете. Так, например, при любой загрузке и т. д. вы хотите убедиться, что никакие данные временно не записываются на диск.
Наконец, для ваших зашифрованных документов не храните ключ на устройстве ни в каком формате. Не храните его и на брелке.
Попробуйте зашифровать содержимое. взгляните на Надежное шифрование для Cocoa / Cocoa Touch< /а>