我想知道...... 是否可以加密部分或全部现有Core Data应用程序的数据库而不会丢失功能或深深依赖第三方依赖项?
我们可以“滚动我们自己的”加密,因为不需要查询这些特定字段(它的元数据或二进制数据)......但我不想影响数据库的其他部分,也不要破坏所有的部分已经工作了。
我们还可以加密整个数据库。不确定什么是最好的。
答案 0 :(得分:1)
要添加@Oleg发布的内容,您可以将二进制数据存储在核心数据NSManagedObject
中。然后,您可以加密字符串并将其存储在该二进制属性中。
性能很差,并且在商店级别无法搜索属性(您可以在获取后搜索,因为它在内存中未加密)但是它是可行的。
答案 1 :(得分:0)
当您创建持久性存储时,您可以在options参数中指定具有NSFileProtectionComplete值的NSPersistentStoreFileProtectionKey,这将在设备被锁定并设置了密码时对数据库文件进行加密,这对于操作数据应该足够好(不是密码和秘密)。
将敏感数据(如客户端机密和密码)保存在钥匙串中,而不是数据库中,数据库加密黑客只是时间问题。