1

我想通过以下方式在 iphone 上创建一个包含核心数据的内存数据存储:

  • 存储的数据以加密文件的形式保存到磁盘(最大 400kb)
  • 加密文件完全加载到内存中,然后我将解密它,以便我在内存中有一些数据数组
  • 我想告诉NSPersistentStoreCoordinator使用这个数据数组,这是我要使用的商店。
  • 在代码中的某些点,内存中的当前数据存储将被复制到另一个数据阵列,加密并存储到磁盘,以便磁盘上的数据始终对应于最新版本的数据。

我必须这样做,因为数据是绝对不能存储在普通数据库中的敏感用户数据。

在我的应用程序中,我已经实现了一个版本,其中托管对象的每个属性都被加密,这样存储在磁盘上的 sqlite 数据库只包含神秘的不可读值。不幸的是,每次运行时加密解密所有内容都太慢了。

首先:这可能吗?其次:可能有一些我需要注意的事情吗?

4

1 回答 1

0

我不确定这是否对您有任何帮助,但在 iOS5 持久存储中,现在将数据以加密格式存储在磁盘上。这也是 iOS4 中的一个选项。请参阅文档

对于为 iOS 5.0 或更高版本构建的应用程序,持久存储现在默认以加密格式将数据存储在磁盘上。默认保护级别会阻止对数据的访问,直到用户首次解锁设备。在配置持久存储时,您可以通过为 NSPersistentStoreFileProtectionKey 键分配自定义值来更改保护级别。有关 iOS 5.0 中新增的数据保护的更多信息,请参阅“数据保护改进”。</p>

于 2011-12-16T19:45:58.580 回答