Home > Article > Backend Development > Detailed explanation of how Python uses the UUID library to generate unique IDs.
UUID Introduction
UUID is a 128-bit globally unique identifier, usually represented by a 32-byte string. It can ensure the uniqueness of time and space, also called GUID, the full name is: UUID - Universally Unique IDentifier, called UUID in Python.
It uses MAC address, timestamp, namespace, random number, and pseudo-random number to ensure the uniqueness of the generated ID.
UUID mainly has five algorithms, which are five methods to implement.
uuid1()
——Based on timestamp. Generated from MAC address, current timestamp, and random number. Global uniqueness can be guaranteed, but the use of MAC also brings security issues. IP can be used instead of MAC in the local area network.
uuid2()
——Based on distributed computing environment DCE (this function does not exist in Python). The algorithm is the same as uuid1, except that the first 4 positions of the timestamp are replaced with POSIX UIDs. This method is rarely used in practice.
uuid3()
- Name-based MD5 hash value. It is obtained by calculating the MD5 hash value of the name and namespace, ensuring the uniqueness of different names in the same namespace and the uniqueness of different namespaces, but the same name in the same namespace generates the same uuid.
uuid4()
——Based on random numbers. Obtained from pseudo-random numbers, there is a certain probability of repetition, and this probability can be calculated.
uuid5()
- Name-based SHA-1 hash value. The algorithm is the same as uuid3, except that the Secure Hash Algorithm 1 algorithm is used.
Usage example
#! coding:utf-8 import uuid print u"uuid1 生成基于计算机主机ID和当前时间的UUID" print uuid.uuid1() # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') 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'
Result
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
Summary
The above is all about Python using the UUID library to generate unique IDs. I hope the content of this article will be useful to everyone. Learning or using python can be helpful. If you have any questions, you can leave a message to communicate.
The above is the detailed content of Detailed explanation of how Python uses the UUID library to generate unique IDs.. For more information, please follow other related articles on the PHP Chinese website!