在后台使用核心数据进行加密

时间:2015-07-22 21:53:13

标签: ios core-data encryption

此问题与问题here不同,因为应用主要位于后台。

我们的应用程序要求我们对数据存储进行加密。

我们当前的实现是使用SQLite使用SQLCipher。该计划将转向核心数据。

我正在寻找一种解决方案来保持数据加密,同时仍可在后台访问,并且不限制查询 - NSPredicates和迁移(架构更改)。

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

  • NSFileProtectionComplete - 不允许在后台进行文件访问
  • encrypted-core-data - 此库似乎确实保持最新状态。但是,在看到known issues列表后,我再次考虑在生产中使用它。最近有人用过这个吗?
  • NSIncrementalStore - 这是Apple工程师推荐我们遵循的方式。 encrypted-core-data正在使用这种方法。
  • 核心数据中的
  • Transformable Attributes - 此解决方案是否可以扩展为更大的数据集?

是否有人推荐符合所有条件且可以在生产应用中使用?

1 个答案:

答案 0 :(得分:0)

我使用上述每个选项运行了一些概念验证应用程序。我在现有的解决方案(SQLCipher)上运行数字和工作台。 看起来使用增量存储(encrypted-core-data)的核心数据似乎是最好的。

在分析了小型和大型数据库的读取,写入和搜索的运行时性能时,encrypted-core-data被证明是最有效和更简单的实现。