python UUID唯一識別符號

2022-04-12 23:45:11 字數 1397 閱讀 9870

uuid: 通用唯一識別符號 ( universally unique identifier ), 對於所有的uuid它可以保證在空間和時間上的唯一性. 它是通過mac位址, 時間戳, 命名空間, 隨機數, 偽隨機數來保證生成id的唯一性, 有著固定的大小( 128 bit )

python的uuid模組提供uuid類和函式uuid1(), uuid3(), uuid4(), uuid5() 來生成1, 3, 4, 5各個版本的uuid

uuid.uuid1([node[, clock_seq]])  : 基於時間戳

使用主機id, 序列號, 和當前時間來生成uuid, 可保證全球範圍的唯一性. 但由於使用該方法生成的uuid中包含有主機的網路位址, 因此可能危及隱私. 該函式有兩個引數, 如果 node 引數未指定, 系統將會自動呼叫 getnode() 函式來獲取主機的硬體位址. 如果 clock_seq 引數未指定系統會使用乙個隨機產生的14位序列號來代替

import

uuid

x=uuid.uuid1()

#e5fc64ca-081c-11ea-b609-74d02bb73e44

#74d02bb73e44 是16進製制的mac位址

print(type(x),x)

uuid.uuid3(namespace, name) : 基於名字的md5雜湊值

通過計算命名空間和名字的md5雜湊值來生成uuid, 可以保證同一命名空間中不同名字的唯一性和不同命名空間的唯一性, 但同一命名空間的同一名字生成的uuid相同

import

uuid

x=uuid.uuid3(uuid.namespace_dns, '

python.org')

print

(type(x),x)

x=uuid.uuid3(uuid.namespace_oid, '

python.org')

print

(type(x),x)

x=uuid.uuid3(uuid.namespace_dns, '

python')

print(type(x),x)

uuid.uuid4() : 基於隨機數

通過隨機數來生成uuid. 使用的是偽隨機數有一定的重複概率 

uuid.uuid5(namespace, name) : 基於名字的sha-1雜湊值

通過計算命名空間和名字的sha-1雜湊值來生成uuid, 演算法與 uuid.uuid3() 相同 

iOS唯一識別符號

在2013年3月21日蘋果已經通知開發者,從2013年5月1日起,替代的方案是開發者應該使用 在ios 6中介紹的vendor或advertising標示符 cfuuid方法用來建立cfuuidref,並且可以獲得乙個相應的nsstring,如下 cfuuidref cfuuid cfuuidcre...

獲取唯一識別符號

ios 2.0版本以後uidevice提供乙個獲取裝置唯一識別符號的方法uniqueidentifier,通過該方法我們可以獲取裝置的序列號,這個也是目前為止唯一可以確認唯一的識別符號。但是,因為該唯一識別符號與手機一一對應,蘋果覺得可能會洩露使用者隱私,所以在ios 5.o之後該方法就被廢棄掉了。...

GUID (全域性唯一識別符號)

全域性唯一識別符號 guid,globally unique identifier 是一種由演算法生成的二進位制長度為128位的數字識別符號。guid主要用於在擁有多個節點 多台計算機的網路或系統中。在理想情況下,任何計算機和計算機集群都不會生成兩個相同的guid。guid 的總數達到了2 128 ...