我在弄清楚如何加密我的 sqlite 数据库时遇到了一些麻烦。我正在使用核心数据和以下项目:
https://cocoapods.org/?q=EncryptedCoreData
我不明白的是我应该如何使用这个项目来加密我的数据库。我已经安装了该项目,并且可以导入 EncryptedCoreData 库。但是我没有找到任何有关 swift 的实际示例的信息。在我的 appdelegate 中,我有以下代码
import UIKit
//import CoreData
//import SQLCipher
import EncryptedCoreData
lazy var persistentContainer: NSPersistentContainer = {
// my attempt to initialize the container
let modelURL = Bundle.main.url(forResource: "DbModel", withExtension: "momd")!
var coordinator = NSPersistentStoreCoordinator.init(managedObjectModel: NSManagedObjectModel(contentsOf: modelURL)!)
//originaly its
let container = NSPersistentContainer(name: "DbModel")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
有人可以提供一个关于我如何初始化容器的示例吗?
最佳答案
我将 Objective-C 翻译成 Swift 并且它有效,我只是添加了这行
let container = NSPersistentContainer(name: "DbModel")
// Begin of my code
let cOpts : NSDictionary = [
EncryptedStore.optionPassphraseKey() : "123deOliveira4", //your Key
EncryptedStore.optionFileManager() : EncryptedStoreFileManager.default()
]
let desc = try! EncryptedStore.makeDescription(options: cOpts as! [AnyHashable : Any], configuration: nil)
container.persistentStoreDescriptions = [desc]
//End
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
关于ios - 如何使用 EncryptedCoreData 快速加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45032046/