代码之家  ›  专栏  ›  技术社区  ›  Piotr Wittchen

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

  •  0
  • Piotr Wittchen  · 技术社区  · 3 年前

    我是iOS开发的新手。我有一个本地SQLite数据库,它使用核心数据。我想对这个数据库进行加密,这样当有人从iPhone设备上用数据库检索文件时,就无法读取其内容。我找到了几种解决方案(包括StackOverflow线程)和第三方库,但它们不起作用,或者不支持我正在使用的功能(例如批量删除)。我在官方文件中也找不到相关信息。你能不能提供一个完整的例子,用Swift在iOS上用核心数据加密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()
    

    我怎样才能给这段代码添加加密?

    当做

    彼得

    0 回复  |  直到 3 年前