Python使用UUID生成唯一ID

2021-07-24 14:46:25 字數 1178 閱讀 7992

原文:

概述:uuid是128位的全域性唯一識別符號,通常由32位元組的字串表示。

它可以保證時間和空間的唯一性,也稱為guid,全稱為:

uuid —— universally unique identifier python 中叫 uuid

guid —— globally unique identifier c# 中叫 guid

它通過mac位址、時間戳、命名空間、隨機數、偽隨機數來保證生成id的唯一性。

uuid主要有五個演算法,也就是五種方法來實現:

1、uuid1()——基於時間戳

由mac位址、當前時間戳、隨機數生成。可以保證全球範圍內的唯一性,

但mac的使用同時帶來安全性問題,區域網中可以使用ip來代替mac。

2、uuid2()——基於分布式計算環境dce(python中沒有這個函式)

演算法與uuid1相同,不同的是把時間戳的前4位置換為posix的uid。

實際中很少用到該方法。

3、uuid3()——基於名字的md5雜湊值

通過計算名字和命名空間的md5雜湊值得到,保證了同一命名空間中不同名字的唯一性,

和不同命名空間的唯一性,但同一命名空間的同一名字生成相同的uuid。

4、uuid4()——基於隨機數

由偽隨機數得到,有一定的重複概率,該概率可以計算出來。

5、uuid5()——基於名字的sha-1雜湊值

演算法與uuid3相同,不同的是使用 secure hash algorithm 1 演算法

使用方面:

首先,python中沒有基於dce的,所以uuid2可以忽略;

其次,uuid4存在概率性重複,由無對映性,最好不用;

再次,若在global的分布式計算環境下,最好用uuid1;

最後,若有名字的唯一性要求,最好用uuid3或uuid5。

以下是預設生成100個的**,呼叫時,輸入數字,可更改生成的個數

import uuid

def create_activation_code(num=200):

codes =

for i in range(num):

code = str(uuid.uuid1())

code = code.replace('-','')

return codes

python生成uuid的方法

uuid universally unique identifier 是通用唯一識別碼,在許多領域用作標識,比如我們常用的資料庫也可以用它來作為主鍵,原理上它是可以對任何東西進行唯一的編碼的。作為新手一看到類似varchar 40 這樣的主鍵就覺得有點矇圈了,字串型也不能自增啊,這裡就應該應用uui...

Python使用UUID庫生成唯一ID

資料 python官方doc 20.15.uuid uuid objects according to rfc 4122 uuid的演算法介紹 a universally unique identifier uuid urn namespace 概述 uuid 是128位的全域性唯一識別符號,通常由...

Python使用UUID庫生成唯一ID

資料 python官方doc 20.15.uuid uuid objects according to rfc 4122 uuid的演算法介紹 a universally unique identifier uuid urn namespace 概述 uuid 是128位的全域性唯一識別符號,通常由...