UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID —— Universally Unique IDentifier,Python 中叫 UUID。 它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。 UUID主要有五个算法,也就是五种方法来实现。
Copy #! coding:utf-8
import uuid
print u "uuid1 生成基于计算机主机ID和当前时间的UUID"
print uuid . uuid1 () # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')
print uuid . uuid1 (). hex # a8098c1af86e11dabd1a00112444be1e
print u "\nuuid3 基于命名空间和一个字符的MD5加密的UUID"
print uuid . uuid3 (uuid.NAMESPACE_DNS, 'python.org' ) #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
print u "\nuuid4 随机生成一个UUID"
print uuid . uuid4 () #'16fd2706-8baf-433b-82eb-8c7fada847da'
print u "\nuuid5 基于命名空间和一个字符的SHA-1加密的UUID"
uuid . uuid5 (uuid.NAMESPACE_DNS, 'python.org' ) #UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')
print u "\n根据十六进制字符生成UUID"
x = uuid . UUID ( '{00010203-0405-0607-0809-0a0b0c0d0e0f}' )
print u "转换成十六进制的UUID表现字符"
print str (x) # '00010203-0405-0607-0809-0a0b0c0d0e0f'
Copy uuid1 生成基于计算机主机ID和当前时间的UUID
31a936a1 - 2339 - 11e6 - 8542 - 9cb70ded607f
uuid3 基于命名空间和一个字符的MD5加密的UUID
6fa459ea - ee8a - 3ca4 - 894e - db77e160355e
uuid4 随机生成一个UUID
67e6497c - 8aec - 4413 - 9955 - da86f38ff2d6
uuid5 基于命名空间和一个字符的SHA - 1加密的UUID
根据十六进制字符生成UUID
转换成十六进制的UUID表现字符
00010203 - 0405 - 0607 - 0809 - 0a0b0c0d0e0f
Copy # 生成基于计算机主机ID和当前时间的UUID"
uuid . uuid1 () # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')
# 基于命名空间和一个字符的MD5加密的UUID"
uuid . uuid3 (uuid.NAMESPACE_DNS, 'python.org' ) #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
# 随机生成一个UUID"
uuid . uuid4 ()
# 基于命名空间和一个字符的SHA-1加密的UUID"
uuid . uuid5 (uuid.NAMESPACE_DNS, 'python.org' )
# 根据十六进制字符生成UUID"
uuid . UUID ( '{00010203-0405-0607-0809-0a0b0c0d0e0f}' )
Copy import datetime
import random
random_time = ' {0 : %Y%m%d%H%M%S%f} ' . format (datetime.datetime. now ()) + '' . join ([ str (random. randint ( 1 , 10 )) for i in range ( 5 )])
Copy import datetime
import random
date_now = datetime . datetime . utcnow () + datetime . timedelta (hours = 8 )
execSalt_taskId = ' {0 : %Y%m%d-%H%M%S-%f} ' . format (date_now) + "-" + '' . join ([ str (random. randint ( 1 , 10 )) for i in range ( 5 )])
print (execSalt_taskId)
结果:20201010-135800-250857-49791