如何通过XCode 6.1项目在iOS 8应用程序上实现iOS数据保护 - > targets->功能 - >数据保护?

时间:2015-02-03 05:31:23

标签: ios security core-data data-protection

我发现了一些关于实施数据保护的恐龙答案的遗留问题。我听说自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];

而且,我们如何使用此数据保护来保护核心数据?

或者,这是一个用于保护手机锁定状态数据的单键解决方案吗?

1 个答案:

答案 0 :(得分:0)

根据NSFileProtectionComplete的{​​{1}},

  

使用从用户密码派生的密钥保护类密钥   和设备UID。用户锁定设备后不久(10秒,   如果要求密码设置是立即),解密的类   键被丢弃,使得此类中的所有数据都无法访问,直到   用户再次输入密码或使用Touch解锁设备   ID。

因此,当您使用:

创建持久性商店时

- (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error;

将您的文件保护选项作为选项词典的一部分传递。