如何获取在iOS钥匙串中创建和存储的钥匙的唯一标识符

问题描述

当我使用SecKeyCreaterandomKey在钥匙串中创建新钥匙时,我想获得UUID的钥匙(或任何其他唯一的id)并使用此id来以后在“钥匙串”中搜索此钥匙。我该怎么办?

到目前为止,我仅提供kSecAttrApplicationTag作为将来查询属性,但是此解决方案存在问题,因为可以使用此标签创建任意数量的键。

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

enter image description here

解决方法

我为此使用了钥匙串第三库,如果您愿意的话可以查看一下,我认为这是最简单且最适合您的情况的。 https://github.com/evgenyneu/keychain-swift

,

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

示例:

kSecAttrApplicationTag -> {COMMON_ATTRIBUTE_PART}-{YOUR_GENERATED_UID}

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