加密通过 Core Data 访问的 Sqlite 数据库
Posted
技术标签:
【中文标题】加密通过 Core Data 访问的 Sqlite 数据库【英文标题】:Encrypting a Sqlite database accessed through Core Data 【发布时间】:2013-06-04 11:04:09 【问题描述】:我需要加密我正在开发的 ios 应用程序的 sqlite 数据库。我设法用 SQLCipher 库做到了这一点。在我的应用程序中,这个数据库是通过 Core Data 查询的。我不明白是否可以告诉 Core Data 使用数据库的未加密版本(通过 SQLCipher 获得)。是否可以? 如果没有,我该怎么办?如何加密数据库并告诉 Core Data 解密它并使用未加密的信息?我阅读了许多其他帖子,但它们并没有多大用处。 注意:sqlite 数据库位于 iOS 应用程序的文档文件夹中,我的目的是拒绝任何用户访问数据。 谢谢
【问题讨论】:
【参考方案1】:为了将 Core Data 与 SQLCipher 一起使用,您需要查看 encrypted-core-data 项目。
【讨论】:
是的,我检查并尝试将它与我的应用程序集成,但我不知道如何使它工作。我按照您链接的页面中的教程进行操作,我将 EncryptedStore 连接到我的数据库,但是在从协调器获得的 NSManagedObjectContext 上执行 NSFetchRequests 总是返回 0 个结果。以上是关于加密通过 Core Data 访问的 Sqlite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
SQLCipher、encrypted-core-data 和 iOS - 两个 .sqlite 文件正常吗?
在同一个数据库上同时使用 core-data 和基于 sqlite c 的 api
EF sqlite3报错 "System.Data.Entity.Core.EntityException: 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。