7

我有一些将数据存储在钥匙串中的代码。代码在单元测试期间工作。我存储的值是 Data 但是,当我指定

 kSecClass : kSecClassGenericPassword, I get OSStatus 0 - success
 kSecClass : kSecClassInternetPassword, I get OSStatus -25303

kSecClassGenericPassword 和 kSecClassInternetPassword 之间的存储要求或区别是什么? (相同的代码使用 kSecClassInternetPassword 失败)

更新:互联网密码查询可能缺少必填字段之一,例如kSecAttrServer,notkSecAttrService

4

1 回答 1

13

“Internet 密码”在某种程度上是 Safari 的专用记录。它们包括主机和用户数据,当您为未知的站点列表存储数百条记录时,这些数据使它们更易于查看。它们几乎从来都不是浏览器想要的东西。

在几乎所有情况下,应用程序想要存储数据的都是“通用密码”,无论您存储的是什么,即使它不是密码。“通用密码”基本上是“加密数据块”。(如果您的应用程序需要存储公钥/私钥或证书,那么适用的类对此很有用,但这比存储“加密数据块”要少见。)

于 2019-04-01T14:22:51.793 回答