当前位置:  开发笔记 > 数据库 > 正文

保护Coredata对象

如何解决《保护Coredata对象》经验,为你挑选了1个好方法。

我正在开发一个有一些敏感信息的应用程序.我知道外行人很难入侵iPhone获取信息.如果我直接使用SQLite,我会使用SQLite Cipher来加密/编码数据库.

无论如何,我可以采用相同的方式加密coredata,这样黑客就很难进入数据.

有人可以对此有所了解吗?

提前致谢



1> Victor Van H..:

核心数据现在默认加密(硬件加密)在iPhone 3GS和后来的设备上,包括iPad.这意味着使用硬件密钥自动加密数据.在iOS 4或更高版本中,按照Nick Harris更详细的博客条目中的步骤,可以启用第二层加密(称为"数据保护"),该加密也使用用户的密码来加密硬件密钥.

所有这一切都取决于用户在iOS 4中设置安全密码和启用数据保护.如果您是注册苹果开发人员,您还可以通过此链接观看iTunes中的"保护应用程序数据"的WWDC 2010视频,并在输入您的开发者ID和密码后查看幻灯片的PDF,以获取更多详细信息.文件加密.

要启用数据保护,请在- (NSPersistentStoreCoordinator *)persistentStoreCoordinator通话中使用下面的键和值更改.sqlite文件的文件属性.有关更详细的代码,请参阅Nick Harris的博客,包括如何检查iOS 4或更高版本是否处于活动状态.

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyAppName.sqlite"];
NSString *storePath = [storeURL path];
NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
[[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:storePath error:&error]

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有