Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung, wie Python die UUID-Bibliothek verwendet, um eindeutige IDs zu generieren.

Ausführliche Erklärung, wie Python die UUID-Bibliothek verwendet, um eindeutige IDs zu generieren.

高洛峰
高洛峰Original
2017-03-23 17:45:441866Durchsuche

UUID-Einführung
UUID ist eine global eindeutige 128-Bit-Kennung, die normalerweise durch eine 32-Byte-Zeichenfolge dargestellt wird. Es kann die Einzigartigkeit von Zeit und Raum sicherstellen, auch GUID genannt. Der vollständige Name lautet: UUID - Universally Unique IDentifier, in Python UUID genannt.
Es verwendet MAC-Adresse, Zeitstempel, Namespace, Zufallszahl und Pseudozufallszahl, um die Einzigartigkeit der generierten ID sicherzustellen.
UUID verfügt hauptsächlich über fünf Algorithmen, dh fünf Methoden zu seiner Implementierung.

uuid1()

– basierend auf Zeitstempel. Wird aus MAC-Adresse, aktuellem Zeitstempel und Zufallszahl generiert. Globale Einzigartigkeit kann gewährleistet werden, die Verwendung von MAC bringt jedoch auch Sicherheitsprobleme mit sich. Im lokalen Netzwerk kann IP anstelle von MAC verwendet werden.

uuid2()

——Basiert auf der verteilten Computerumgebung DCE (diese Funktion ist in Python nicht vorhanden). Der Algorithmus ist derselbe wie bei uuid1, außer dass die ersten 4 Positionen des Zeitstempels durch POSIX-UIDs ersetzt werden. Diese Methode wird in der Praxis selten angewendet.

uuid3()

– Namensbasierter MD5-Hashwert. Es wird durch Berechnen des MD5-Hash-Werts des Namens und des Namespace erhalten, um die Einzigartigkeit verschiedener Namen im selben Namespace und die Einzigartigkeit verschiedener Namespaces sicherzustellen, aber derselbe Name im selben Namespace generiert dieselbe UUID.

uuid4()

– Basierend auf Zufallszahlen. Aus Pseudozufallszahlen gewonnen, besteht eine gewisse Wiederholungswahrscheinlichkeit, und diese Wahrscheinlichkeit kann berechnet werden.

uuid5()

– Namensbasierter SHA-1-Hashwert. Der Algorithmus ist derselbe wie uuid3, außer dass der Secure Hash Algorithm 1-Algorithmus verwendet wird.
Verwendungsbeispiele

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


Ergebnisse

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


Zusammenfassung
Oben geht es um die Verwendung der UUID-Bibliothek durch Python zum Generieren eindeutiger IDs Ich hoffe, der Inhalt dieses Artikels kann für alle hilfreich sein, um Python zu lernen oder zu verwenden. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation hinterlassen.


Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie Python die UUID-Bibliothek verwendet, um eindeutige IDs zu generieren.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn