gpt4 book ai didi

iOS 核心数据数据保护不起作用

转载 作者:行者123 更新时间:2023-11-30 13:06:19 26 4
gpt4 key购买 nike

我正在尝试为我的核心数据文件启用数据保护。这就是我所做的。

  1. 项目设置启用了数据保护功能。
  2. 修改持久性存储协调器 getter

    let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
    let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite")

    var failureReason = "There was an error creating or loading the application's saved data."
    do {
    try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: [NSSQLitePragmasOption : ["journal_mode" : "DELETE"], NSPersistentStoreFileProtectionKey : NSFileProtectionComplete])
    }
  3. 运行代码并在设备上安装应用程序。

  4. 下载应用容器并打开包内容,可以看到 .sqlite 文件
  5. 现已锁定设备
  6. 保留 10 秒,然后再次下载同一个应用程序的应用程序容器。7.打开包内容,我仍然可以看到包内容和sqlite文件:(

如果有帮助的话,我正在使用免费的配置文件。

我在这里犯了什么错误?为什么这个 .sqlite 文件没有加密?

请帮忙。提前致谢。

最佳答案

由于您的设备连接到的计算机是受信任的计算机,因此即使设备被锁定,它也可以读取您的应用的容器。我知道有两个选项可以测试 sqlite 文件是否已加密:

1) 越狱您的设备。然后通过 SSH 连接到您的设备,并在设备锁定时尝试读取 sqlite 文件(即“cat sqlite_file”)。如果文件已加密,您将无法读取它。

2) 您可以检查 sqlite 文件上的属性并确保正确设置 NSFileProtectionKey 属性:

let attributes = try? FileManager.default.attributesOfItem(atPath: sqlite_path)
print(attributes)

关于iOS 核心数据数据保护不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com