小能豆

如何在 Python 中创建 GUID/UUID

python

如何在 Python 中创建 GUID/UUID


阅读 54

收藏
2024-09-11

共1个答案

小能豆

在 Python 中创建 GUID(全局唯一标识符)或 UUID(通用唯一标识符)可以使用标准库中的 uuid 模块。该模块提供了几种生成不同类型 UUID 的方法,且是跨平台的,不依赖任何特定平台的功能。

使用 uuid 模块生成 UUID

下面是如何在 Python 中生成 UUID 的示例:

import uuid

# 生成一个随机 UUID
generated_uuid = uuid.uuid4()

print(f"生成的 UUID: {generated_uuid}")

uuid 模块的不同生成方法

uuid 模块提供了多种生成 UUID 的方法,具体如下:

  1. uuid.uuid1(): 基于主机的 MAC 地址和当前时间生成一个 UUID。适用于需要使用硬件信息生成的唯一标识符的情况。
    python uuid1 = uuid.uuid1() print(f"UUID1: {uuid1}")

  2. uuid.uuid3(namespace, name): 基于命名空间标识符和名称的 MD5 哈希生成 UUID。适用于需要特定命名空间和名称的一致性 UUID。
    python uuid3 = uuid.uuid3(uuid.NAMESPACE_DNS, 'example.com') print(f"UUID3: {uuid3}")

  3. uuid.uuid4(): 基于随机数生成 UUID。这是最常用的生成随机 UUID 的方法。
    python uuid4 = uuid.uuid4() print(f"UUID4: {uuid4}")

  4. uuid.uuid5(namespace, name): 基于命名空间标识符和名称的 SHA-1 哈希生成 UUID。与 uuid3() 类似,但使用 SHA-1 而不是 MD5。
    python uuid5 = uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') print(f"UUID5: {uuid5}")

示例代码

以下是一个完整的示例,展示了如何创建和打印不同类型的 UUID:

import uuid

# 生成不同类型的 UUID
uuid1 = uuid.uuid1()   # 基于时间的 UUID
uuid3 = uuid.uuid3(uuid.NAMESPACE_DNS, 'example.com')  # 基于 MD5 的 UUID
uuid4 = uuid.uuid4()   # 随机 UUID
uuid5 = uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com')  # 基于 SHA-1 的 UUID

# 打印 UUID
print(f"UUID1: {uuid1}")
print(f"UUID3: {uuid3}")
print(f"UUID4: {uuid4}")
print(f"UUID5: {uuid5}")

选择合适的 UUID 生成方法

  • uuid.uuid1(): 适用于需要时间和硬件信息的唯一标识符,但可能会暴露设备信息,不适合隐私敏感的应用。
  • uuid.uuid4(): 最常用的生成随机 UUID 的方法,适用于需要简单、随机唯一标识符的情况。

总结

  • Python 中的 uuid 模块可以跨平台生成 GUID/UUID。
  • 使用 uuid.uuid4() 是生成随机唯一标识符的最常用和推荐的方法。
2024-09-11