核心数据 SQLite 加密?

Posted

技术标签:

【中文标题】核心数据 SQLite 加密?【英文标题】:Core Data SQLite encryption? 【发布时间】:2011-06-08 21:08:49 【问题描述】:

有人在他们的 Core Data SQLite 存储上使用过加密吗?您是如何实现的?

【问题讨论】:

【参考方案1】:

我很确定在 Core Data 中使用加密的唯一方法是在应用程序退出时加密整个持久存储文件,或者在托管对象子类中使用自定义访问器来加密和解密数据,因为它们分别保存到持久存储。

【讨论】:

我认为你的第二个选项是迄今为止最好的。 谢谢。 - 您认为它会对性能产生多大影响? 我认为性能损失会很大。加密算法是计算密集型的,每次获取或设置属性时都会运行加密。最后,这将取决于您的数据大小。如果您的数据集相对较小,那么无论操作多么复杂,Core Data 操作对用户来说都是即时的,但是当您开始谈论数以千计的活动对象和数以千计的更新时,任何减速都会开始建立并变得明显。 Apple 安全框架将允许您保护相对少量的数据,因此如果您只是保存少量数据,例如登录名或密码,你应该使用它而不是重载整个核心数据堆栈。【参考方案2】:

我开始包含这个精彩的项目:

https://github.com/project-imas/encrypted-core-data

在我的代码中,一切顺利。我有一个奇怪的问题,只使用 NSPredicate 在相关字段中创建搜索查询。

【讨论】:

以上是关于核心数据 SQLite 加密?的主要内容,如果未能解决你的问题,请参考以下文章

每当应用程序未运行时如何加密核心数据数据库

android sqlite 升级为加密

C#访问加密的SQLite数据库

将未加密的表移动到加密的 sqlite 数据库

sqlite 加密

加密你的SQLite