首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreData与数据保护

CoreData与数据保护
EN

Stack Overflow用户
提问于 2016-12-21 00:05:27
回答 2查看 3.3K关注 0票数 7

因此,我正在开发一个应用程序,在本地使用CoreData框架存储用户信息。这些信息可能是敏感的,所以我正在考虑如何保护存储到数据库中的信息。在Xcode仪表板中,在capabilities选项卡下,我找到了数据保护开关:

有人知道这是怎么回事吗?如果我打开开关,Xcode会自动编码我的CoreData文件吗?或者如何在我的CoreData文件上实现这种保护?感谢你的时间和耐心。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 09:48:15

您找到了正确的位置,您必须打开目标功能窗格中的数据保护开关,以指示您要使用数据保护。根据苹果的文档的说法,这应该足够了:

默认的保护级别是完全保护,在这种保护中,当设备被锁定时,文件是加密和不可访问的。您可以通过编程方式设置应用程序创建的文件的保护级别.

它声明您可以以编程方式设置保护级别。如果您想要这样做(我仍然这样做,要保存;),在创建persistentStoreCoordinator时应该使用适当的选项:

代码语言:javascript
复制
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                         @YES, NSMigratePersistentStoresAutomaticallyOption,
                         @YES, NSInferMappingModelAutomaticallyOption,
                         NSFileProtectionComplete, NSPersistentStoreFileProtectionKey, // <-- HERE
                         nil];
...

__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
...
}

NSFileProtectionComplete意味着

该文件以加密格式存储在磁盘上,当设备被锁定或启动时,无法读取或写入该文件。

您还可以使用NSFileProtectionCompleteUnlessOpen,请参阅Xcode快速帮助了解差异。

票数 3
EN

Stack Overflow用户

发布于 2019-01-18 11:51:06

根据Apple文档,当用户为设备设置活动密码时,将自动启用数据保护。系统在幕后加密和解密您的内容。这些过程是自动的,硬件加速。但是,我们仍然可以使用nonecompletecompleteUnlessOpencompleteUntilFirstUserAuthentication编程地设置文件保护级别选项。

代码语言:javascript
复制
let options = [NSMigratePersistentStoresAutomaticallyOption:true,
                           NSInferMappingModelAutomaticallyOption:true,
                           NSPersistentStoreFileProtectionKey: FileProtectionType.complete] as [String : Any]
            try persistantStoreCoordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeURL, options: options)

请参考此链接以了解有关不同类型选项的更多信息。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41253189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档