我一直在使用Apple的一份文档中提供的'SecKeyWrapper'类来加密核心数据字段。 SecKeyWrapper类是非ARC的。我想知道这是否仍然是加密核心数据字段的最佳方式,还是有更新/更好的解决方案?
谢谢
答案 0 :(得分:25)
在iOS 5 and later核心数据中,默认情况下使用NSFileProtection来保护持久数据。
对于为iOS 5.0或更高版本构建的应用程序,持久性存储现在默认以加密格式存储数据到磁盘上。在用户首次解锁设备之后,默认保护级别将阻止访问数据。您可以在配置持久性存储时通过为NSPersistentStoreFileProtectionKey键分配自定义值来更改保护级别。有关iOS 5.0中新增的数据保护的其他信息,请参阅“数据保护改进”。
如果要修改Core Data存储的默认文件保护行为,请将密钥NSPersistentStoreFileProtectionKey的值更改为商店选项字典中的其他NSFileProtectionKey值。
示例:
NSDictionary *storeOptions = @{NSPersistentStoreFileProtectionKey : NSFileProtectionComplete};
if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[self storeURL] options:storeOptions error:&error]){
[self presentError:error];
}