Шифрование данных Core iOS

Я шифровал поля данных ядра, используя класс "SecKeyWrapper", указанный в одном из документов Apple. Класс SecKeyWrapper не является ARC. Мне интересно, если это еще лучший способ шифрования полей данных ядра или есть более новое/лучшее решение?

Спасибо

Ответ 1

В iOS 5 и более поздних версиях > Основные данные по умолчанию используют NSFileProtection для защиты сохраненных данных.

Для приложений, созданных для iOS 5.0 или новее, постоянные хранилища теперь хранят данные по умолчанию в зашифрованном формате на диске. Уровень защиты по умолчанию предотвращает доступ к данным до тех пор, пока пользователь не разблокирует устройство в первый раз. Вы можете изменить уровень защиты, назначив настраиваемое значение ключу NSPersistentStoreFileProtectionKey при настройке постоянных хранилищ. Дополнительные сведения о новой защите данных в iOS 5.0 см. В разделе "Улучшения защиты данных".

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

Пример:

NSDictionary *storeOptions = @{NSPersistentStoreFileProtectionKey  : NSFileProtectionComplete};

if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[self storeURL] options:storeOptions error:&error]){
     [self presentError:error];
 }