在 macOS 上加密 NSDocument



无论如何,是否可以覆盖NSPersistentDocument进行加密并要求密码才能打开文件?换句话说,是否可以使用用户提供的密码对整个文档进行加密?我已经研究了解决方案,似乎唯一的方法是独立地加密CoreData数据本身,但是这使得无法使用NSPredicate来过滤NSFetchRequest,因为数据将被加密。另一种选择是使用 Realm 数据库,它有一个加密密钥,但它只加密 Realm 数据,而文档中的所有其他数据都是未加密的。

您可以加密 CoreData 对象,并通过在读取时创建瞬态(仅在内存中(明文字段,您可以使用 NSPredicate 在这些明文字段上过滤 NSFetchRequest。有关加密/解密代码的示例,请参阅此处:https://github.com/michaelrourke/EncryptedCoreData

查看文档以了解NSPersistentStore及其两个抽象子类NSAtomicStoreNSIncrementalStore。如果创建其中一个的自定义子类,则可以自定义 Core Data 写入的后端。

相关内容

  • 没有找到相关文章

最新更新