python 基於 uuid 生成唯一碼

2021-10-03 14:15:19 字數 818 閱讀 6508

一、概述

uuid是128位的全域性唯一識別符號,通常由32位元組的字串表示。它可以保證時間和空間的唯一性,也稱為guid,全稱為:

uuid —— universally unique identifier python 中叫 uuid

guid —— globally unique identifier c# 中叫 guid

二、方法

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 演算法。

# test

import uuid

# 獲取八位數的隨機碼

print(type(uuid.uuid1()), str(uuid.uuid1())[:8])

參考

python生成uuid的方法

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

Python使用UUID生成唯一ID

原文 概述 uuid是128位的全域性唯一識別符號,通常由32位元組的字串表示。它可以保證時間和空間的唯一性,也稱為guid,全稱為 uuid universally unique identifier python 中叫 uuid guid globally unique identifier c...

go語言生成uuid

作業系統 centos 6.9 x64 go語言版本 1.8.3 golang沒有提供生成uuid的介面,但開發中確實需要uuid。這裡把看到的 記錄下,也方便我以後查閱。示例 如下 package main import fmt sync atomic time type uuid 16 byte...