cocoa - 在 macOS 上加密 NSDocument

标签 cocoa encryption nsdocument nspersistentdocument

有没有办法可以重写 NSPersistentDocument 来加密并需要密码才能打开文件?换句话说,是否可以使用用户提供的密码对整个文档进行加密?我研究过解决方案,似乎唯一的方法是实际独立加密 CoreData 数据本身,但这将导致无法使用 NSPredicate 来过滤 NSFetchRequest,因为数据将被加密。另一种方法是使用具有加密 key 的 Realm,但仅加密 Realm 数据,而使文档中的所有其他数据不加密。

最佳答案

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

关于cocoa - 在 macOS 上加密 NSDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309582/

相关文章:

swift - 关闭以表格形式呈现的 NSViewController

php - 带有加密列的 laravel 4.2 查询

ruby-on-rails - attr_用rails加密

macos - 如何禁用窗口恢复?

objective-c - 帮助诊断 Cocoa 框架中的崩溃 - 可能的内存泄漏?

cocoa - NSImage readFromData问题

iphone - 是否可以使用 Cocoa 创建本地 WiFi 网络,同时保持与现有的支持 Internet 的 WiFi 连接的连接?

cocoa - 如何使用 "Search"Finder 风格创建工具栏,圆形按钮像 radio 一样工作

java - 字符串加密有效,byte[]数组类型加密无效

objective-c - NSLayoutConstraint 的默认常量是什么?