UUID模块生成随机字符串

发布时间 2023-06-26 11:00:43作者: Chimengmeng

UUID模块生成随机字符串

【一】UUID详解

  • UUID (Universally Unique Identifier)是一种128位的标识符

    • 用于在计算机系统中识别唯一性。
    • 它通常表示为一个32个十六进制数目,用连字符分隔开来的形式,如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。
  • Python中的uuid模块可以生成和操作这些UUID。该模块提供了4种生成UUID的方式:

    • uuid1():
      • 基于主机的MAC地址和当前时间戳生成UUID(不保证全局唯一性)。
    • uuid3():
      • 基于名字的MD5散列值生成UUID。
    • uuid4():
      • 随机生成UUID。
    • uuid5():
      • 基于名字的SHA-1散列值生成UUID。
  • 除此之外,该模块还提供了其他一些功能,例如:

    • UUID对象的属性和方法
      • 如hex、int、urn、bytes、time_low、time_mid等。
    • 解析UUID字符串和字节串的函数
      • 如uuid.UUID()和uuid.bytes_from_uuid()。
    • 对UUID进行比较、排序和哈希的函数
      • 如uuid.uuid1_compare()、uuid.uuid1_sorted()和uuid.uuid_hash()。
  • 总的来说,uuid模块提供了一套完整的UUID生成和操作工具,可以方便地在Python程序中使用UUID。

【二】案例

下面是一些uuid模块常用方法的案例详解:

uuid1()

该方法生成一个基于主机的MAC地址和当前时间戳的UUID。下面是一个简单的示例:

import uuid

print(uuid.uuid1())
# 5ad53ebc-4cab-11ea-9e75-806e6f6e6963

uuid4()

该方法生成一个随机UUID。下面是一个简单的示例:

import uuid

print(uuid.uuid4())
# d0d2760c-4955-49a1-b2be-a3d674cb8e10

uuid5()

该方法生成一个基于名字的SHA-1散列值的UUID。下面是一个简单的示例:

import uuid

namespace = uuid.uuid5(uuid.NAMESPACE_DNS, 'example.org')
print(namespace)
# 6fad1fbe-b3d0-5c43-8974-386a129ca7c9

UUID对象的属性和方法

UUID对象有许多构成UUID的属性和方法。下面是一个简单的示例:

import uuid

# 生成一个UUID对象
uid = uuid.uuid4()

# 获取UUID对象中的各组成部分
print(uid.variant)
# 1

print(uid.version)
# 4

print(uid.time_low)
# 148485486948939628159077133227677751797

print(uid.int)
# 178114247243283222879372506454734868661

# 将UUID对象转换为十六进制字符串
print(uid.hex)
# 'c5c51ab3-20d2-43fd-ba8e-e610f0c33f7b'

# 将UUID对象转换为URN格式的字符串
print(uid.urn)
# 'urn:uuid:c5c51ab3-20d2-43fd-ba8e-e610f0c33f7b'

# 将UUID对象转换为字节串
print(uid.bytes)
# b'\xc5\xc5\x1a\xb3 \xd2C\xfd\xba\x8e\xe6\x10\xf0\xc3?{'

以上是一些uuid模块常用方法的案例详解。若有不清楚的地方,可以进一步咨询。