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。
- uuid1():
-
除此之外,该模块还提供了其他一些功能,例如:
- 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模块提供了一套完整的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模块常用方法的案例详解。若有不清楚的地方,可以进一步咨询。