首页 > 解决方案 > 如何获取在 iOS Keychain 中创建和存储的密钥的唯一标识符

问题描述

当我在 Keychain 中创建一个新密钥时,SecKeyCreateRandomKey我想获取UUID这个密钥(或任何其他唯一的id),并id在未来使用它在 Keychain 中搜索这个密钥。我该怎么做?

到目前为止,我只设法kSecAttrApplicationTag为将来的查询提供了一个属性,但是这个解决方案是有问题的,因为可以使用这个标签创建任意数量的键。

在查看密钥如何存储在钥匙串数据库中时,我看到那里有一个UUID字段,尽管我找不到在应用程序级别访问它的方法。

在此处输入图像描述

标签: iosswiftkeychain

解决方案


您可以使用kSecAttrApplicationTag可以独立生成的具有唯一 UID 的自定义方案来存储。

例子:

kSecAttrApplicationTag -> {COMMON_ATTRIBUTE_PART}-{YOUR_GENERATED_UID}

因此,您可以存储生成的 UID 并知道 COMMON_ATTRIBUTE_PART,您可以稍后搜索密钥。这样您就不必依赖钥匙串生成的 UUID。


推荐阅读