核心数据在后台encryption

这个问题不同于这里的问题,因为应用程序主要在后台。

我们的应用程序要求我们保持数据存储encryption。

我们目前的实现是使用SQLite使用SQLCipher。 计划将转移到核心数据。

我正在寻找一种解决scheme来保持数据encryption,同时仍然可以在后台访问,并且不会限制查询 – NSPredicates和迁移(模式更改)。

以下是我一直在研究的所有选项:

  • NSFileProtectionComplete – 不允许在后台访问文件
  • encrypted-core-data – 这个库似乎保持最新。 但是,在查看已知问题列表后,我已经有了关于在生产中使用它的第二个想法。 有没有人最近使用这个?
  • NSIncrementalStore – 这是苹果工程师build议我们遵循的方式。 encryption核心数据正在使用这种方法。
  • 核心数据中可转换的属性 – 这个解决scheme是否可扩展用于更大的数据集?

有没有人有build议,符合所有的标准,可用于生产应用程序?

我使用上述每个选项运行了一些概念validation应用程序。 我运行了数字,并与我们现有的解决scheme(SQLCipher)进行了比较。 看起来像使用增量存储( encrypted-core-dataencrypted-core-data出来是最好的。

encrypted-core-data经过分析在小型和大型数据库上读取,写入和search的运行时性能时间后,实现效率最高,实现起来更简单。