📅  最后修改于: 2023-12-03 15:18:54.449000             🧑  作者: Mango
UUID是一种通用唯一识别码(Universally Unique Identifier),它是由一组32个16进制数所组成的。UUID可以保证其全球唯一性,通常用于识别软件系统中唯一的数据记录、实体或者在分布式系统中唯一标识一个计算机节点。
Python内置了生成UUID的模块uuid
,可以方便地生成符合标准的UUID。
Python标准库中内置了uuid
模块,因此不需要额外安装任何额外的依赖。
在Python中,生成符合标准的UUID非常简单,只需要导入uuid
模块,然后调用相应的函数即可。
import uuid
# 生成一个版本4的UUID,使用随机数
uuid.uuid4()
返回结果如下:
UUID('5ab8056e-f369-437a-9165-20cb90290cef')
UUID对象具有以下属性:
UUID.bytes
:UUID字节表示形式UUID.hex
:UUID的16进制表示形式(去掉了链接字符“-”)UUID.int
:UUID的32位整型表示形式UUID.urn
:UUID的URN表示形式(统一资源名称)import uuid
# 生成一个版本1的UUID(基于MAC地址和时间戳)
uuid.uuid1()
# 生成一个版本3的UUID(基于命名空间的MD5散列值)
name = uuid.NAMESPACE_URL
namespace_uuid = uuid.uuid5(name, 'python.org')
print(namespace_uuid)
# 生成一个版本5的UUID(基于命名空间的SHA-1散列值)
name = uuid.NAMESPACE_DNS
namespace_uuid = uuid.uuid5(name, 'python.org')
print(namespace_uuid)
UUID确切的格式由其版本决定。全球唯一的UUID由1到5不同的版本方式生成。
| UUID版本 | 描述 | | -------- | ---- | | 1 | 基于MAC地址和时间戳生成的UUID | | 2 | DCE安全UUID | | 3 | 基于命名空间的MD5散列值 | | 4 | 使用随机数生成的UUID | | 5 | 基于命名空间的SHA-1散列值 |
UUID还有4种变体,由RFC 4122定义:
| 变体 | 描述 | | ---- | ---- | | 0 | 保留 | | 1 | 标准变体 | | 2 | 保留 | | 3 | 保留 |
在Python中,可以通过variant
属性获取UUID的变体。
import uuid
uuid_obj = uuid.uuid4()
print(uuid_obj.variant)
Python的uuid
模块可以很方便地生成UUID。根据需要使用不同版本的UUID,以保证生成的ID的唯一性。