gpt4 book ai didi

ios - 从核心数据中删除和添加存储

转载 作者:行者123 更新时间:2023-11-29 04:09:20 24 4
gpt4 key购买 nike

我在核心数据中存储一些敏感信息,例如密码等。我希望我的应用程序在应用程序进入后台或终止时加密整个 SQLite 数据库(它不是很大,< 1 MB)。我弄清楚了加密问题本身,但我在正确“关闭”并重新打开存储的核心数据堆栈时遇到问题。

当我的应用程序终止/进入后台时,我现在执行以下操作:

  • 保存上下文
  • 从协调器中删除商店
  • 加密存储并保存
  • 删除商店

当我的应用程序返回时,我会执行以下操作:

  • 解密并保存存储文件
  • 将商店添加回协调器
  • 重置上下文

根据我从文档中了解到的内容,这应该足够了,但它不起作用,一旦主视图 Controller 尝试再次在上下文中进行提取,我的应用程序就会崩溃。

有人知道暂时从核心数据中删除商店然后再次添加的最佳方法是什么吗?

最佳答案

这不是您问题的答案,但值得一提的是:

您的加密策略存在致命缺陷,我强烈建议您想出不同的方案。

如果数据应该在磁盘上加密,并且实际上值得加密,则永远不应该以未加密的状态将其写入磁盘,原因如下:

  • 如果应用强制退出,或设备断电,文件在磁盘上仍保持未加密状态。然后有人可以在磁盘上查找未加密的数据。

  • 删除存储文件的纯文本版本很可能安全地删除该文件,因此磁盘分析/工具可以找到未加密版本的存储文件文件。

如果您想在将数据写入磁盘时对其进行加密,则必须每次都将加密数据写入磁盘,无一异常(exception)。 “有时会加密”是没有用的。

作为替代策略,您可能需要考虑对存储在核心数据本身中的数据进行加密。例如,您可以对数据进行 NSArchive 并加密生成的数据字节,然后再将其存储为 BLOB。

关于ios - 从核心数据中删除和添加存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665090/

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