核心数据数据加密

时间:2015-06-13 16:11:34

标签: ios core-data

根据我的理解,要为Core Data启用数据加密,设备需要启用/打开Passcode,并将此密钥包含在addPersistentStoreWithType:方法的可选字典中。我确实为我的设备启用了密码,并在项目中启用了此代码:

NSPersistentStore *store = [self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                                   configuration:nil
                                                                             URL:self.storeURL
                                                                         options:@{ NSPersistentStoreUbiquitousContentNameKey : @"iCloudStore",
                                                                                    NSPersistentStoreFileProtectionKey : NSFileProtectionComplete}
                                                                           error:&error];

但是当我使用名为Liya的软件(从Mac应用程序商店下载)直接打开sqlite数据文件时,我能够在sqlite数据库中看到数据。我使用iTunes文件共享将sqlite数据库文件从我的设备保存到我的Mac。

由于数据已加密,我是否应该无法直接使用Liya等工具查看数据?

1 个答案:

答案 0 :(得分:2)

加密仅适用于设备。您通过iTunes或Xcode从设备复制的文件始终会被解密。将设备与iTunes配对时,它会从计算机上的手机中创建所有加密密钥的副本。这是必要的,因此iTunes可以在手机锁定时创建备份和同步。