在Python中使用UUID生成随机ID
UUID具有完整的通用唯一标识符格式,它是一个python库,它支持128位ID以生成随机对象。
UUID的优点
如上,我们可以使用它为随机对象生成唯一的随机ID。
对于加密和哈希应用程序,可以使用此ID。
为了生成随机文档以及地址等,可以使用此ID。
方法1
使用uuid1()
范例程式码
import uuid print ("Random id using uuid1() is : ",end="") print (uuid.uuid1())
输出结果
Random id using uuid1() is : 4adeede2-e5d8-11e8-bd27-185e0fd4f8b3
uuid1()的表示形式
bytes-返回16字节字符串格式的id。
int-以128位整数的格式返回id。
hex-作为32个字符的十六进制字符串,它返回随机id。
uuid1()的组件
版本-UUID的版本号。
variant-确定UUID的内部布局。
uuid1()的字段
time_low-表示id的前32位。
time_mid-表示id的后16位。
time_hi_version-表示ID的后16位。
clock_seq_hi_variant-表示ID的后8位。
clock_seq_low-表示ID的后8位。
节点-表示ID的最后48位。
时间-指定ID的时间组件领域。
clock_seq-表示14位序列号。
范例程式码
import uuid id = uuid.uuid1() # Representations of uuid1() print ("Different Representations of uuid1() are : ") print ("Representation in byte : ",end="") print (repr(id.bytes)) print ("Representation in int : ",end="") print (id.int) print ("Representation in hex : ",end="") print (id.hex) print("\n") # Components of uuid1() print ("Different Components of uuid1() are : ") print ("UUID Version : ",end="") print (id.version) print ("UUID Variant : ",end="") print (id.variant) print("\n") # Fields of uuid1() print ("Fields of uuid1() are : ") print ("UUID Fields : ",end="") print (id.fields) print("\n") # uuid1() Time Component print ("uuid1() time Component is : ") print ("Time component : ",end="") print (id.node)
输出结果
Different Representations of uuid1() are : Representation in byte : b'\x1a\xd2\xa7F\xe5\xe4\x11\xe8\xbd\x9c\x18^\x0f\xd4\xf8\xb3' Representation in int : 35653703010223099234452630771665795251 Representation in hex : 1ad2a746e5e411e8bd9c185e0fd4f8b3 Different Components of uuid1() are : UUID Version : 1 UUID Variant : specified in RFC 4122 Fields of uuid1() are : UUID Fields : (450012998, 58852, 4584, 189, 156, 26792271607987) uuid1() time Component is : Time component : 26792271607987
方法2
使用uuid4()
范例程式码
import uuid id = uuid.uuid4() # Id generated using uuid4() print ("The id generated using uuid4() : ",end="") print (id)
输出结果
The id generated using uuid4() : 21764219-e3d9-4bd3-a768-0bbc6e376bc0