我发现了一些关于实施数据保护的恐龙答案的遗留问题。我听说自iOS7或iOS8以来有不同之处。在XCode 6中打开数据保护功能后,我们还需要编码吗?
这有必要吗?
[[NSFileManager defaultManager] createFileAtPath:[self filePath]
contents:[@"super secret file contents" dataUsingEncoding:NSUTF8StringEncoding]
attributes:[NSDictionary dictionaryWithObject:NSFileProtectionComplete
forKey:NSFileProtectionKey]];
[[[NSFileManager defaultManager] attributesOfItemAtPath:[self filePath]
error:NULL]
valueForKey:NSFileProtectionKey];
而且,我们如何使用此数据保护来保护核心数据?
或者,这是一个用于保护手机锁定状态数据的单键解决方案吗?
答案 0 :(得分:0)
根据NSFileProtectionComplete
的{{1}},
使用从用户密码派生的密钥保护类密钥 和设备UID。用户锁定设备后不久(10秒, 如果要求密码设置是立即),解密的类 键被丢弃,使得此类中的所有数据都无法访问,直到 用户再次输入密码或使用Touch解锁设备 ID。
因此,当您使用:
创建持久性商店时 - (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error;
将您的文件保护选项作为选项词典的一部分传递。