2016-03-09 55 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位數字來識別(作爲一組)。

相關問題