iOS钥匙串-kSecClassGenericPassword和kSecClassInternetPassword有什么区别?

时间:2019-04-01 13:24:09

标签: ios keychain osstatus ksecclassgenericpassword ksecclassinternetpassword

我有一些代码将数据存储在钥匙串中。该代码在单元测试期间有效。我存储的值是“数据”,但是当我指定时

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

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

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

1 个答案:

答案 0 :(得分:1)

“ Internet密码”是Safari的专门记录。它们包含主机和用户数据,使您在为未知站点列表存储数百条记录时更易于查看。除了浏览器想要的东西外,它们几乎什么都没有。

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