Frage

Ich sehe diese 2 Abkürzungen um sich geworfen, und ich Frage mich, ob es irgendwelche Unterschiede zwischen GUID und eine UUID?

War es hilfreich?

Lösung

Die einfache Antwort ist: kein Unterschied, Sie sind die gleiche Sache.Behandeln Sie Sie wie eine 16 byte (128 bits) Wert, der verwendet wird als eindeutiger Wert.In Microsoft-sprechen Sie genannt werden GUIDs, aber nennen Sie UUIDs wenn Sie nicht mit Microsoft-sprechen.

Auch die Autoren des UUID-Spezifikation und Microsoft behaupten, dass Sie Synonyme sind:

  • Von der Einführung in die IETF RFC 4122 "Ein Universally Unique IDentifier (UUID) URN Namespace":"ein Uniform Resource Name-namespace für UUIDs (Universally Unique IDentifier), auch bekannt als GUIDs (Globally Unique IDentifier)."

  • Aus der ITU-T-Empfehlung X. 667, ISO/IEC 9834-8:2004 Internationalen Standard:"UUIDs sind auch bekannt als GUIDs (Globally Unique Identifiers), aber dieser Begriff ist nicht verwendet in dieser Empfehlung."

  • Und selbst Microsoft Ansprüche eine GUID angegeben wird die UUID RFC:"In Microsoft Windows-Programmierung und Windows-Betriebssystemen eine GUID (globally unique identifier), wie in [RFC4122], ist ...Der Begriff universally unique identifier (UUID) ist manchmal verwendet in der Windows-Protokoll-Spezifikationen als synonym für GUID."

Aber die richtige Antwort hängt davon ab, was die Frage bedeutet, wenn er sagt, "UUID"...

Der erste Teil hängt davon ab, was der Fragesteller ist zu denken, wenn Sie sagen, "UUID".

Microsoft Behauptung impliziert, dass alle UUIDs GUIDs sind.Aber sind alle GUIDs real UUIDs?Das heißt, die Menge aller UUIDs nur eine echte Teilmenge der Menge aller GUIDs, oder ist es der exakt gleiche Satz?

Blick auf die details der RFC 4122, es gibt vier verschiedene "Varianten" von UUIDs.Dies ist vor allem, weil solche 16-byte-IDS im Einsatz waren, bevor diese Spezifikationen wurden zusammengebracht, in der Schaffung einer UUID-Spezifikation.Aus Abschnitt 4.1.1 RFC 4122, die vier Varianten der UUID sind:

  1. Vorbehalten, Network Computing System backward compatibility
  2. Die Variante spezifiziert in RFC 4122 (von denen gibt es fünf sub-Varianten, die als "Varianten")
  3. Vorbehalten, Microsoft Corporation rückwärts Kompatibilität
  4. Reserviert für zukünftige definition.

Gemäß RFC 4122, alle UUID Varianten "echt UUIDs" ist, dann alle GUIDs sind echte UUIDs.Die wörtliche Frage "gibt es einen Unterschied zwischen GUID und UUID" die Antwort ist definitiv Nein RFC 4122 UUIDs: kein Unterschied (jedoch vorbehaltlich der zweite Teil unten).

Aber nicht alle GUIDs sind Variante 2 UUIDs (z.B.Die Microsoft-COM-hat-GUIDs, die Variante 3 UUIDs).Wenn die Frage "gibt es einen Unterschied zwischen GUID und Variante 2 UUIDs", dann wäre die Antwort ja-Sie können verschiedene sein.Jemand die Frage wahrscheinlich nicht kennen Varianten und Sie könnten nur denken Variante 2 UUIDs, wenn Sie sagen, das Wort "UUID" (z.B.Sie ist vage und wissen, dass die MAC-Adresse+Zeit und das random-Nummer-algorithmen Formen der UUID, die beide Versionen von Variante 2).In diesem Fall, die Antwort ist ja, verschiedene.

Also ist die Antwort, in Teil, hängt davon ab, was die person denkt, wenn Sie sagen, das Wort "UUID".Haben Sie zu bedeuten Variante 2 UUID (denn das ist die einzige Variante, die Sie bewusst sind) oder alle UUIDs?

Der zweite Teil, hängt auf die Spezifikation verwendet wird, wie die definition von UUID.

Wenn Sie denken, das war verwirrend, Lesen Sie die ITU-T X. 667 ISO/IEC 9834-8:2004 was soll das sein ausgerichtet und technisch voll kompatibel mit RFC 4122.Es hat einen zusätzlichen Satz in Abschnitt 11.2, die sagt, "Alle UUIDs gemäß dieser Empfehlung | Internationale Norm gilt Variante bits mit bit 7 von Byte 7 auf 1 gesetzt und bit 6 octet 7 auf 0 gesetzt".Das bedeutet, dass nur Variante 2 UUID konform zu diesem Standard (diese beiden bit-Werte bedeuten Variante 2).Wenn das wahr ist, dann nicht alle GUIDs sind konform ITU-T/ISO/IEC UUIDs, weil konform ITU-T/ISO/IEC UUIDs kann nur sein Variante 2 Werte.

Daher, die richtige Antwort hängt auch davon ab, welche Vorgaben der UUID die Frage ist, zu Fragen.Vorausgesetzt, wir sind klar über alles reden, UUIDs und nicht nur die Variante 2 UUIDs:es ist kein Unterschied zwischen GUID und IETF UUIDs, aber ja Differenz zwischen GUID und konform ITU-T/ISO/IEC-UUIDs!

Binäre Codierungen könnte sich unterscheiden

Bei der Binär kodiert (im Gegensatz zu der für Menschen lesbaren text-format), die GUID gespeichert werden kann in eine Struktur mit vier verschiedenen Felder wie folgt aus.Dieses format unterscheidet sich von dem UUID-standard nur in der byte-Reihenfolge die ersten 3 Felder.

Bits  Bytes Name   Endianness  Endianness
                   (GUID)      RFC 4122

32    4     Data1  Native      Big
16    2     Data2  Native      Big
16    2     Data3  Native      Big
64    8     Data4  Big         Big

Andere Tipps

GUID ist die Microsoft-Implementierung des UUID-Standard.

Wikipedia :

  

Der Begriff GUID Regel bezieht sich auf Microsoft-Implementierung des Universally Unique Identifier (UUID) Standard.

Ein aktualisierter Zitat aus dem gleichen Wikipedia-Artikel:

  

RFC 4122 selbst heißt es, dass UUIDs "wird auch als GUIDs bekannt". All dies deutet darauf hin, dass „GUID“, während ursprünglich unter Bezugnahme auf eine Variante des UUID von Microsoft verwendet wird, hat sich einfach ein alternativer Name für UUID ...

Nicht wirklich. GUID ist Microsoft-zentriert während UUID mehr weit verbreitet. (Zum Beispiel wie in dem urn: uuid: URN-Schema, und in CORBA)

GUID verfügt über langjährige Verwendung in Bereichen, in denen es nicht unbedingt eine 128-Bit-Wert in der gleichen Weise wie ein UUID ist. Zum Beispiel definiert die RSS-Spezifikation GUIDs beliebige Zeichenfolge Ihrer Wahl zu sein , solange es mit einem „isPermalink“ Attribute angeben, einzigartig, das ist der Wert, den Sie verwenden nur ein Permanentlink zurück zum Artikel syndizierten wird.

Microsofts GUID die Textdarstellung in Form einer UUID sein kann durch zwei geschweifte Klammern {} umgeben zu sein.

Ein Unterschied zwischen GUID in SQL Server und UUID in PostgreSQL ist Groß- und Kleinschreibung; SQL Server gibt obere während PostgreSQL gibt niedriger.

Die hexadezimalen Werte „a“ bis „f“ ausgegeben als Kleinbuchstaben und Groß- und Kleinschreibung bei der Eingabe. - RFC4122 # Abschnitt-3

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top