UUID(通用唯一標(biāo)識(shí)符)是一種由數(shù)字和字母組成、用于在計(jì)算機(jī)系統(tǒng)中標(biāo)識(shí)信息的方式。
UUID采用128位二進(jìn)制表示,常以16進(jìn)制字符形式展示。其生成算法依賴于當(dāng)前時(shí)間、計(jì)算機(jī)硬件等多個(gè)因素,可保證生成的字符串不重復(fù),與已有記錄發(fā)生沖突的概率極小。
1.UUID的生成方法
UUID生成算法主要分為兩種類型:時(shí)間戳和隨機(jī)數(shù)。
時(shí)間戳型UUID基于時(shí)間戳和設(shè)備MAC地址等多個(gè)信息生成,可以確保序號(hào)遞增,并且相對(duì)穩(wěn)定,但也容易受到時(shí)鐘回?fù)艿挠绊憽?/p>
隨機(jī)數(shù)型UUID則采用完全隨機(jī)的方式生成,具有較高的唯一性和隨機(jī)性,但也可能存在重復(fù)的情況。
當(dāng)前主流的UUID版本是基于RFC 4122定義的標(biāo)準(zhǔn),使用時(shí)間戳和隨機(jī)數(shù)來生成唯一標(biāo)識(shí)符。
2.iPhone獲取UUID方法
在iOS中,可以通過UIDevice類的identifierForVendor屬性來獲取UUID。
identifierForVendor是一個(gè)在應(yīng)用商店中唯一的、與iOS設(shè)備相關(guān)聯(lián)的UUID,可以用于標(biāo)識(shí)同一供應(yīng)商開發(fā)的不同應(yīng)用。但需要注意的是,在用戶刪除該供應(yīng)商的所有應(yīng)用之后重新安裝,identifierForVendor可能會(huì)發(fā)生變化。
此外,還有一些第三方庫(kù)可以幫助獲取更多的UUID信息,包括廣告標(biāo)識(shí)符(IDFA)、設(shè)備號(hào)(UDID)等。