Python UUID 模块学习记录

uuid是一种唯一标识,在许多领域作为标识用途。python的uuid模块就是用来生成它的。

Python UUID

UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID,全称为:

1
2
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提供的生成uuid的方法一共有4种,分别是:

  • 从硬件地址和时间生成
  • 从md5算法生成
  • 随机生成
  • 从SHA-1算法生成

在uuid模块里对应uuid1, uuid3, uuid4, uuid5这几个方法,注意没有uuid2。下面是示例:

1
2
3
4
5
import uuid
print uuid.uuid1()
print uuid.uuid3(uuid.NAMESPACE_DNS, ‘www.yourdomain.com’)
print uuid.uuid4()
print uuid.uuid5(uuid.NAMESPACE_DNS, ‘www.yourdomain.com’)

本文网址: https://pylist.com/topic/43.html 转摘请注明来源

Suggested Topics

python 处理命令行参数

Python 完全支持创建在命令行运行的程序,也支持通过命令行参数和短长样式来指定各种选项。...

python 使用 magic 从文件内容判断文件类型

使用 python-magic 库可以轻松识别文件的类型,python-magic是libmagic文件类型识别库的python接口。libmagic通过根据预定义的文件类型列表检查它们的头文件来识别文件类型。 ...

在SAE Python上开启gzip的方法

开启 gzip 的作用自不必说,可以省很多流出带宽,可以省很多云豆。昨天这个博客的云豆消耗,其中流出带宽就占九成多,开启后就会只占五成多。...

Python List 按键高效排序方法

Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间,而这些排序方法运行时也会拖延程序实际的运行速度。...

Leave a Comment