2012-03-06 79 views
0

我浏览过大约二十篇这里和其他地方寻找答案的文章。没有人似乎已经解决了这个问题 -iOS数据存储指南catch 22

我们有一个具有相当大的数据库(大约5MB)的应用程序。脱机工作时,应用程序需要数据库。在线时,可以通过从我们的服务器下载来重新创建数据库。

我们不能使用核心数据而不是我们自己的数据库,因为数据必须经过加密才能符合政府的隐私标准。

没有此数据库,该应用程序无法脱机工作,因此无法进入库/缓存。

我们可以将数据放入文档中,并将其标记为“不备份”iOS 5,但这不适用于iOS 4,因为该属性无法识别。

那么我们可以用iOS 4中的数据库做些什么?

+0

因此,您的要求规定,不仅要在设备上加密,而且在设备同步时不能备份到计算机上? – QED 2012-03-06 17:37:21

+0

@psoft - 除了要重新创建的数据已备份在我们的服务器上外,没有关于备份的规定。 – 2012-03-06 18:18:58

+0

@HotLicks您可以扩展“加密以满足政府隐私标准”吗?有没有可以指向的标准? – 2012-03-06 19:11:58

回答

0

就在我头顶。

我想你可以继承NSManagedObject,这样它就可以加密任何保存到核心数据的数据并在读取它时将其解密。虽然在CPU上会有很多开销。有可能会有一些优化它。

检查了这一点:AES Encryption for an NSString on the iPhone

+1

通过字符串加密字符串非常复杂且容易出错,效率非常低,并且严重不安全。 – 2012-03-06 18:14:43

0

把它放在(sandbox)/Library/Application Support。以下是Apple如何描述应用程序支持文件夹:

您的应用程序为用户创建和管理的资源和数据文件。您可以使用此目录来存储应用程序状态信息,计算或下载的数据,或者甚至是您代表用户管理的用户创建的数据。

引用自Apple's File System Programming Guide for iOS

+0

奇怪的是,在任何数据存储指南中没有提及应用程序支持。考虑到与重新提交相关的时间/成本(特别是对于我们来说,鉴于我们的客户坚持要提交实际提交的内容),如果能够接受此解决方案,那将是很好的。 – 2012-03-06 18:21:20