通用唯一識別碼 UUID(Python)

2021-08-26 15:10:05 字數 1259 閱讀 3080

一、概述:

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

六、使用:

android 獲取手機唯一識別碼

如果獲取不到imsi號,就拼接其它資訊獲取唯一碼 結論是,依然有部分手機獲取不到。final telephonymanager tm telephonymanager getbasecontext getsystemservice context.telephony service string u...

c 獲取機器唯一識別碼

在客戶端認證的過程中,我們總要獲取客戶機的唯一識別資訊,曾經以為mac位址是不會變的,但是現在各種改,特別是使用無線上網絡卡,mac位址插一次變一次,所以這樣使用mac就沒有什麼意義了,怎麼辦,又開始求助google,最後找到乙個折中的方案 通過獲取主機板 處理器 bios mac 顯示卡 硬碟等的...

獲取Android系統的唯一識別碼

摘自 在計算機上,我們習慣用mac位址來標誌一台計算機。在android裝置上,可以用imie或者android id來標誌乙個裝置。看一下android上怎樣獲取這樣的資訊。乙個是telephonymanager的getdeviceid,另外乙個是settings.system的android i...