核心数据数据加密

Posted

技术标签:

【中文标题】核心数据数据加密【英文标题】:Core Data data encryption 【发布时间】:2015-06-13 16:11:33 【问题描述】:

据我了解,要为 Core Data 启用数据加密,设备需要启用/打开密码并将此密钥包含在 addPersistentStoreWithType: 方法的可选字典中。我确实为我的设备启用了密码,并在项目中启用了此代码:

NSPersistentStore *store = [self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                                   configuration:nil
                                                                             URL:self.storeURL
                                                                         options:@ NSPersistentStoreUbiquitousContentNameKey : @"iCloudStore",
                                                                                    NSPersistentStoreFileProtectionKey : NSFileProtectionComplete
                                                                           error:&error];

但是当我直接使用 Liya(从 Mac 应用商店下载)软件打开 sqlite 数据文件时,我能够看到 sqlite 数据库中的数据。我使用 iTunes 文件共享将 sqlite 数据库文件从我的设备保存到我的 Mac。

既然数据是加密的,难道我就不能直接使用 Liya 之类的工具来查看数据吗?

【问题讨论】:

【参考方案1】:

加密仅适用于设备。您通过 iTunes 或 Xcode 从设备上复制的文件总是会被解密。当您将设备与 iTunes 配对时,它会在您的计算机上创建手机中所有加密密钥的副本。这是必要的,这样 iTunes 才能在您的手机被锁定时创建备份和同步。

【讨论】:

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

核心数据 SQLite 加密?

加密核心数据迁移实体名称不匹配问题

SDK 加密核心数据

核心数据加密类

核心数据转换器

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