📜  python create uuid - Python (1)

📅  最后修改于: 2023-12-03 15:18:54.449000             🧑  作者: Mango

Python生成UUID

介绍

UUID是一种通用唯一识别码(Universally Unique Identifier),它是由一组32个16进制数所组成的。UUID可以保证其全球唯一性,通常用于识别软件系统中唯一的数据记录、实体或者在分布式系统中唯一标识一个计算机节点。

Python内置了生成UUID的模块uuid,可以方便地生成符合标准的UUID。

使用方法
安装

Python标准库中内置了uuid模块,因此不需要额外安装任何额外的依赖。

生成UUID

在Python中,生成符合标准的UUID非常简单,只需要导入uuid模块,然后调用相应的函数即可。

import uuid

# 生成一个版本4的UUID,使用随机数
uuid.uuid4()

返回结果如下:

UUID('5ab8056e-f369-437a-9165-20cb90290cef')
UUID属性

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确切的格式由其版本决定。全球唯一的UUID由1到5不同的版本方式生成。

| UUID版本 | 描述 | | -------- | ---- | | 1 | 基于MAC地址和时间戳生成的UUID | | 2 | DCE安全UUID | | 3 | 基于命名空间的MD5散列值 | | 4 | 使用随机数生成的UUID | | 5 | 基于命名空间的SHA-1散列值 |

UUID变体

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的唯一性。