2012-12-07 62 views
4

我想加密我的核心数据。加密核心数据

正如另一个问题所建议的,我已经通过Nick Harris https://nickharris.wordpress.com/2010/07/14/core-data-and-enterprise-iphone-applications-protecting-your-data/的以下帖子。

首先在我的设备上,我在设置中打开了密码。

然后在我的appDelegate,当我创建我的persistentStoreCoordinator时,我将以下属性NSFileProtectionComplete添加到我的核心数据存储文件,据我的理解,这意味着当设备被密码锁定时,我的核心数据应该被加密无障碍。

NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey]; 
if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:[storeURL path] error:&error]) { 
     NSLog(@"Cant encrypt"); 
    } 

然而,在做这一切,即使锁定装置的密码,我仍然可以访问应用程序沙箱和含有使用IEXPLORER和我的.sqllite文件可以把整个文件到我的桌面上的文件和文件夹查看它完全未加密。

我错过了什么?

+0

有人对此有任何想法吗? – josully

回答

3

为了万一任何人有兴趣,我想出了为什么我愚蠢地认为我的问题提到的苹果提供的加密没有工作.... 我打开我的CoreData文件的加密,并测试我只是试图从我的设备使用iExplorer获取.sqlLite文件。它似乎在访问该文件,因为使用我的sqlLite浏览器打开了.sqlLite文件。然而,它实际上并没有打开设备上的最新文件,而是打开了该文件的缓存版本...

+0

现货。有同样的问题。 – Dan