在后台使用 Core Data 加密
Posted
技术标签:
【中文标题】在后台使用 Core Data 加密【英文标题】:Encryption with Core Data in background 【发布时间】:2015-07-22 21:53:12 【问题描述】:这个问题与here 的问题不同,因为应用程序大部分时间都在后台。
我们的应用程序要求我们对数据存储进行加密。
我们当前的实现是通过 SQLCipher 使用 SQLite。计划是迁移到 Core Data。
我正在寻找一种解决方案来保持数据加密,同时仍可在后台访问,并且在查询方面不受限制 - NSPredicates 和迁移(架构更改)。
以下是我一直在研究的所有选项:
NSFileProtectionComplete - 不允许在后台访问文件 encrypted-core-data - 这个库看起来确实是最新的。但是,在看到known issues 的列表后,我对在生产中使用它有了第二个想法。最近有人用过吗? NSIncrementalStore - 这是 Apple 工程师建议我们遵循的方式。 encrypted-core-data 正在使用这种方法。 Transformable Attributes 在核心数据中 - 此解决方案是否可扩展用于更大的数据集?是否有人提出了符合所有标准并可用于生产应用的推荐?
【问题讨论】:
【参考方案1】:我使用上述每个选项运行了一些概念验证应用程序。我运行了数字并针对我们现有的解决方案(SQLCipher)进行了基准测试。
看起来使用增量存储的核心数据 (encrypted-core-data
) 是最好的。
在分析了小型和大型数据库上读取、写入和搜索的运行时性能时间后,encrypted-core-data
被证明是最高效且易于实现的。
【讨论】:
以上是关于在后台使用 Core Data 加密的主要内容,如果未能解决你的问题,请参考以下文章