如何使用 Swift 在 iOS 上正确加密/解密核心数据?

How to properly encrypt/decrypt Core Data on iOS with Swift?

提问人:Piotr Wittchen 提问时间:3/27/2022 最后编辑:Piotr Wittchen 更新时间:3/30/2022 访问量:449

问:

我是 iOS 开发的新手。我有一个本地SQLite数据库,它使用Core Data。我想加密这个数据库,所以如果有人从iPhone设备检索带有数据库的文件,则无法读取其内容。我找到了几个解决方案(包括 StackOverflow 线程)和第三方库,但它们不起作用或不支持我正在使用的功能(例如批量删除)。我在官方文档中也找不到相关信息。您能否提供一个完整的示例,在 iOS 上使用 Swift 使用 Core Data 加密 SQLite 数据库,或者给我一些提示或资源,我该怎么做?我很欣赏你的回答。

我正在按以下方式初始化数据库:

let bundle = Bundle(for: DatabaseManager.self)
let modelUrl = bundle.url(forResource: modelName, withExtension: "momd")!
let managedObjectModel = NSManagedObjectModel(contentsOf: modelUrl)!
persistentContainer = NSPersistentContainer(name: modelName, managedObjectModel: managedObjectModel)
persistentContainer.loadPersistentStores { (storeDescription, error) in

if let error = error as NSError? {
  FrameworkLogger.error("Unresolved error \(String(describing: error)), \(error.userInfo)")
}

context = persistentContainer.newBackgroundContext()

如何向此代码添加加密?

问候

皮奥特

iOS Swift iPhone 加密 核心-数据

评论

1赞 Herry 3/30/2022
在IOS中,即使你不加密数据,你的数据也是安全的,没有人可以重新努力,直到他们越狱iPhone。
0赞 Piotr Wittchen 3/31/2022
感谢您的回复。我在 Apple 开发人员文档中读到,从 iOS 5.0 开始,数据默认是加密的。

答: 暂无答案