将数据模型保存在钥匙串中的缺点是什么? [关闭]

问题描述 投票:-1回答:1

我了解钥匙串是为保存密码,InternetPassword,加密密钥等而设计的。但是,为什么不只保存可编码的小型模型呢?

例如,一个可编码和可解码的结构,拥有大约100个用户敏感首选项的属性。

我尝试过,效果很好。尽管没有太多具体的信息,但我想了解这样做是否有不利之处。

ios swift security keychain
1个回答
2
投票

实际上并没有阻止您执行此操作,因为编码后的数据模型将采用Data / NSData的形式。在朝那个方向前进之前,可能要记住两点:

  • 每个单个钥匙串项(我个人找不到官方声明,但我记得写数据大小大于2 MB的钥匙​​串项会导致钥匙串写入错误)。这意味着您应该注意数据模型的大小(例如,使用短的CodingKeys代替实际的属性名称,会在要写入的结果数据块中使用较少的字节)

  • 钥匙串数据不会在用户删除应用程序时被删除。我不确定这是否会一直保持下去,但这是目前的事实,这意味着您可能需要在应用程序中添加逻辑,以确保在先前安装的基础上再进行一次安装使用旧的/肮脏的数据作为不必要的

我不会阻止您为此使用钥匙串,但万一有其他方法,例如将加密密钥存储在钥匙串上,并使用它来加密/解密您的实际数据模型并将其安全地写入应用程序中文档文件夹。您可以将其与诸如NSFileProtectionComplete设置之类的额外步骤结合使用,仅在设备实际上受到密码保护的情况下才能访问钥匙串中的加密密钥,并且,如果计划存储大量数据,则可以将加密和CoreData结合在一起。

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.