问题描述
当我使用SecKeyCreaterandomKey
在钥匙串中创建新钥匙时,我想获得UUID
的钥匙(或任何其他唯一的id
)并使用此id
来以后在“钥匙串”中搜索此钥匙。我该怎么办?
到目前为止,我仅提供kSecAttrApplicationTag
作为将来查询的属性,但是此解决方案存在问题,因为可以使用此标签创建任意数量的键。
在查看密钥在密钥链数据库中的存储方式时,我看到那里有一个UUID
字段,尽管我找不到在应用程序级别访问它的方法。
解决方法
我为此使用了钥匙串第三库,如果您愿意的话可以查看一下,我认为这是最简单且最适合您的情况的。 https://github.com/evgenyneu/keychain-swift
,您可以使用kSecAttrApplicationTag
存储具有可独立生成的唯一UID的自定义方案。
示例:
kSecAttrApplicationTag -> {COMMON_ATTRIBUTE_PART}-{YOUR_GENERATED_UID}
因此,您可以存储生成的UID并知道COMMON_ATTRIBUTE_PART,以后可以搜索密钥。这样,您就不必依赖于钥匙串生成的UUID。