Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon dont Python utilise la bibliothèque UUID pour générer des identifiants uniques.

Explication détaillée de la façon dont Python utilise la bibliothèque UUID pour générer des identifiants uniques.

高洛峰
高洛峰original
2017-03-23 17:45:441864parcourir

Introduction à l'UUID
L'UUID est un identifiant globalement unique de 128 bits, généralement représenté par une chaîne de 32 octets. Il peut garantir l'unicité du temps et de l'espace, également appelé GUID, le nom complet est : UUID - Universally Unique IDentifier, appelé UUID en Python.
Il utilise l'adresse MAC, l'horodatage, l'espace de noms, le nombre aléatoire et le nombre pseudo-aléatoire pour garantir l'unicité de l'ID généré.
L'UUID dispose principalement de cinq algorithmes, c'est-à-dire cinq méthodes pour l'implémenter.

uuid1()

- basé sur l'horodatage. Généré à partir de l'adresse MAC, de l'horodatage actuel et d'un nombre aléatoire. L'unicité globale peut être garantie, mais l'utilisation de MAC pose également des problèmes de sécurité. IP peut être utilisé à la place de MAC dans le réseau local.

uuid2()

——Basé sur l'environnement informatique distribué DCE (cette fonction n'existe pas en Python). L'algorithme est le même que uuid1, sauf que les 4 premières positions de l'horodatage sont remplacées par des UID POSIX. Cette méthode est rarement utilisée en pratique.

uuid3()

- Valeur de hachage MD5 basée sur le nom. Il est obtenu en calculant la valeur de hachage MD5 du nom et de l'espace de noms, garantissant l'unicité des différents noms dans le même espace de noms et l'unicité des différents espaces de noms, mais le même nom dans le même espace de noms génère le même uuid.

uuid4()

- Basé sur des nombres aléatoires. Obtenu à partir de nombres pseudo-aléatoires, il existe une certaine probabilité de répétition, et cette probabilité peut être calculée.

uuid5()

- Valeur de hachage SHA-1 basée sur le nom. L'algorithme est le même que uuid3, sauf que l'algorithme Secure Hash Algorithm 1 est utilisé.
Exemples d'utilisation

#! 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'


Résultats

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


Résumé
Ce qui précède concerne Python utilisant la bibliothèque UUID pour générer des identifiants uniques. J'espère que cet article Le contenu peut être utile à tout le monde pour apprendre ou utiliser Python. Si vous avez des questions, vous pouvez laisser un message pour communiquer.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn