UUID是128位的全局惟一標識符,一般由32字節的字符串表示。它能夠保證時間和空間的惟一性,也稱爲GUID,全稱爲:python
UUID —— Universally Unique IDentifier Python 中叫 UUID
GUID —— Globally Unique IDentifier C# 中叫 GUID
複製代碼
它經過MAC地址、時間戳、命名空間、隨機數、僞隨機數來保證生成ID的惟一性。 UUID主要有五個算法,也就是五種方法來實現:算法
由MAC地址、當前時間戳、隨機數生成。能夠保證全球範圍內的惟一性,但MAC的使用同時帶來安全性問題,局域網中可使用IP來代替MAC。安全
算法與uuid1相同,不一樣的是把時間戳的前4位置換爲POSIX的UID。實際中不多用到該方法。bash
經過計算名字和命名空間的MD5散列值獲得,保證了同一命名空間中不一樣名字的惟一性,和不一樣命名空間的惟一性,但同一命名空間的同一名字生成相同的uuid。分佈式
由僞隨機數獲得,有必定的重複機率,該機率能夠計算出來。函數
算法與uuid3相同,不一樣的是使用 Secure Hash Algorithm 1 算法。ui
###使用方面spa
import uuid
print(uuid.uuid1())
#out 25182c94-382f-11e9-8c0c-d0a637ed3f35
print(uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org'))
#out 6fa459ea-ee8a-3ca4-894e-db77e160355e
print(uuid.uuid4())
#out ce5ac630-08f9-4247-8d4a-5df0cbf4a361
print(uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org'))
#886313e1-3b8a-5372-9b90-0c9aee199e5d
複製代碼
下面的是個人公衆號二維碼圖片,歡迎關注。code