是否可以在NSUUID中声明自己的[mini]命名空间?

时间:2016-03-09 14:17:47

标签: swift namespaces uuid nsuuid

维基百科页面https://en.wikipedia.org/wiki/Universally_unique_identifier指出在UUID规范的版本3(因此可能是5)中:“六位被固定值替换

我正在开发一款使用NSUUID课程的iPhone应用。我的客户要求能够在完整的UUID字符串中声明自己的小型固定字符集。从我到目前为止所读到的内容来看,我认为这是不可能的 - 因为只是加载是出于可以理解的原因 - 但我不得不问是否有办法,以便我可以回答/转向他的保证问题。

请问有没有,请?

提前致谢。

1 个答案:

答案 0 :(得分: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位数识别(作为一组)。