2016-03-09 25 views
1

维基百科https://en.wikipedia.org/wiki/Universally_unique_identifier页指出,在UUID规范的版本3(并因此大概5):是否可以在NSUUID中声明自己的[mini]名称空间?

我对利用NSUUID类的iPhone应用程序的工作“6位由固定值替换”。我的客户要求能够在整个UUID字符串中声明他自己的一小组固定字符。从我目前阅读的内容来看,我不认为这是可能的 - 对于只是加载是出于可理解的原因 - 但是我不得不问,是否有办法,以便我可以保证回答/转移他的问题。

那么请问有没有?

在此先感谢。

+0

没有API,但显然有办法做到这一点。问题是唯一性是多么重要,能够证明失败的唯一性和副作用... – Wain

回答

1

这可能吗?当然;但除非客户的iPhone应用程序存在于另一个宇宙中,否则可能通过坚持RFC 4122变体描述的版本来更好地服务客户的iPhone应用程序。

与您的客户坐下来解释uuid布局可能会有帮助。您可以考虑使用Mahonri Moriancumer's UUID and GUID Generator and Forensics来演示UUID选项。

更新:在通过多一点思考这一点,有一个签名添加到生成的UUID ...

考虑版本1 UUID结构(RFC 4122的变体)的方法。对于这种类型的UUID,最后12位数字表示生成UUID的计算机以太网卡的MAC地址。

如果你要从一个特定的以太网卡(即使是旧的,过时的)获取MAC地址,然后销毁该卡,可以确信没有其他计算机会使用该卡生成UUID(v1)以太网卡的MAC地址再次。然后你可以使用该MAC地址作为你的“在完整的UUID字符串”“中拥有一小组固定的字符集。

然后,只需编写自己的UUID v1生成器,该生成器使用此MAC地址作为UUID的最后12位数字。其余的UUID数字可以符合v1规范。生成的UUID将完全符合v1规范,并且可以通过最后12位数字来识别(作为一组)。

相关问题