通用唯一識別碼——UUID(Python)

來源:互聯網
上載者:User

一、概述:

  UUID(Universally Unique Identity)的縮寫,是一種軟體建構的標準,通常由32位元組16進位數表示(128位),它可以保證時間和空間的唯一性。目前應用最廣泛的UUID事微軟的GUIDs。

二、作用:

  UUID讓分布式系統所有元素都有唯一的辨識資訊,讓每個人都可以建立與他人不同的UUID,不需考慮資料庫建立時的名稱重複問題。隨機產生字串,當成token、使用者帳號、訂單等。

三、原理:

  UUID是指一台機器上產生的數字,他保證同一時空所有機器都是唯一的。

  UUID由以下幾部分構成:

    (1)時間戳記:根據目前時間或者時鐘序列產生字串

    (2)全劇唯一的機器識別號,根據網卡MAC地址或者IP擷取,如果沒有網卡則以其他方式擷取。

    (3)隨機數:機器自動隨機一組序列

   等等

四、演算法

  uuid有5種產生演算法,分別是uuid1()、uuid2()、uuid3()、uuid4()、uuid5()。

  1、uuid1()基於時間戳記

    由MAC地址、目前時間戳、隨機數字。保證全球範圍內的唯一性。但是由於MAC地址使用會帶來安全問題,區域網路內使用IP代替MAC

  2、uuid2() 基於分布式環境DCE

    演算法和uuid1相同,不同的是把時間戳記前四位換成POIX的UID,實際很少使用。注意:python中沒有這個函數

  3、uuid3() 基於名字和MD5散列值

    通過計算名字和命名空間的MD5散列值得到的,保證了同一命名空間中不同名字的唯一性,不同命名空間的唯一性。但是同一命名空間相同名字產生相同的uuid。

  4、uuid4() 基於隨機數

    由偽隨機數得到的,有一定重複機率,這個機率是可以算出來的

  5、uuid5() 基於名字和SAHI值

    演算法和uuid3相同,不同的是使用SAHI演算法

五、使用經驗:

  1、python中沒有DCE,所以uuid2可以忽略

  2、uuid4存在機率重複性,由於無映射性,最好不使用

  3、如果全域的分布式環境下,最好使用uuid1

  4、若名字的唯一性要求,最好使用uuid3或者uuid5

六、使用:

  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.