iOS核心数据加密

时间:2014-04-21 16:59:14

标签: ios core-data encryption

我一直在使用Apple的一份文档中提供的'SecKeyWrapper'类来加密核心数据字段。 SecKeyWrapper类是非ARC的。我想知道这是否仍然是加密核心数据字段的最佳方式,还是有更新/更好的解决方案?

谢谢

1 个答案:

答案 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];
 }