Je vois ces 2 acronymes jetés autour, et je me demandais s'il y avait des différences entre un GUID et un UUID?
Je vois ces 2 acronymes jetés autour, et je me demandais s'il y avait des différences entre un GUID et un UUID?
Réponses:
La réponse est simple : pas de différence , c'est la même chose. Traitez-les comme une valeur de 16 octets (128 bits) utilisée comme valeur unique. Dans Microsoft-speak, ils sont appelés GUID, mais appelez-les UUID lorsqu'ils n'utilisent pas Microsoft-speak.
Même les auteurs de la spécification UUID et Microsoft affirment qu'ils sont synonymes:
De l'introduction à l'IETF RFC 4122 « Un espace de noms URN IDentifier universel (UUID) »: «un espace de noms Uniform Resource Name pour les UUID (Universally Unique IDentifier), également connu sous le nom de GUID (Globally Unique IDentifier)».
D'après la Recommandation UIT-T X.667, Norme internationale ISO / CEI 9834-8: 2004 : "Les UUID sont également connus sous le nom d'identificateurs globaux uniques (GUID), mais ce terme n'est pas utilisé dans la présente Recommandation."
Et Microsoft prétend même qu'un GUID est spécifié par le RFC UUID: "Dans la programmation Microsoft Windows et dans les systèmes d'exploitation Windows, un identifiant globalement unique (GUID), comme spécifié dans [RFC4122], est ... Le terme identifiant universellement unique (UUID ) est parfois utilisé dans les spécifications du protocole Windows comme synonyme de GUID. "
Mais la bonne réponse dépend de ce que signifie la question lorsqu'elle dit "UUID" ...
La première partie dépend de ce que le demandeur pense quand il dit "UUID".
La revendication de Microsoft implique que tous les UUID sont des GUID. Mais tous les GUID sont-ils de vrais UUID? Autrement dit, l'ensemble de tous les UUID n'est-il qu'un sous-ensemble approprié de l'ensemble de tous les GUID, ou s'agit-il exactement du même ensemble?
En regardant les détails de la RFC 4122, il existe quatre "variantes" différentes d'UUID. Cela est principalement dû au fait que de tels identifiants de 16 octets étaient utilisés avant que ces spécifications ne soient réunies dans la création d'une spécification UUID. De la section 4.1.1 de la RFC 4122 , les quatre variantes d'UUID sont:
Selon la RFC 4122, toutes les variantes d' UUID sont de «vrais UUID», puis tous les GUID sont de vrais UUID. À la question littérale "existe-t-il une différence entre le GUID et l'UUID", la réponse est certainement non pour les UUID RFC 4122: aucune différence (mais sous réserve de la deuxième partie ci-dessous).
Mais tous les GUID ne sont pas des UUID de variante 2 (par exemple, Microsoft COM a des GUID qui sont des UUID de variante 3). Si la question était "y a-t-il une différence entre le GUID et la variante 2 UUID", alors la réponse serait oui - ils peuvent être différents. Quelqu'un qui pose la question ne connaît probablement pas les variantes et ne pense peut-être aux UUID de la variante 2 qu'en prononçant le mot "UUID" (par exemple, il connaît vaguement l'adresse MAC + l'heure et les formes d'algorithmes à nombres aléatoires d'UUID, qui sont les deux versions de la variante 2). Dans ce cas, la réponse est oui différente .
La réponse dépend donc en partie de ce que pense la personne qui demande lorsqu'elle dit le mot «UUID». S'agit-il de l'UUID de la variante 2 (car c'est la seule variante dont ils ont connaissance) ou de tous les UUID?
La deuxième partie dépend de la spécification utilisée comme définition de l'UUID.
Si vous pensez que cela prête à confusion, lisez l' UIT-T X.667 ISO / IEC 9834-8: 2004 qui est censé être aligné et entièrement compatible avec la RFC 4122 . La clause 11.2 contient une phrase supplémentaire qui dit: "Tous les UUID conformes à la présente Recommandation | Norme internationale doivent avoir des bits de variante avec le bit 7 de l'octet 7 mis à 1 et le bit 6 de l'octet 7 mis à 0". Ce qui signifie que seule la variante 2 UUID est conforme à cette norme (ces deux valeurs binaires signifient la variante 2). Si cela est vrai, tous les GUID ne sont pas des UUID UIT-T / ISO / CEI conformes, car les UUID UIT-T / ISO / CEI conformes ne peuvent être que des valeurs de variante 2.
Par conséquent, la vraie réponse dépend également de la spécification de l'UUID sur laquelle porte la question. En supposant que nous parlons clairement de tous les UUID et pas seulement des UUID de variante 2: il n'y a pas de différence entre le GUID et les UUID de l'IETF, mais oui différence entre le GUID et les UUID UIT-T / ISO / IEC conformes !
Les encodages binaires peuvent différer
Lorsqu'il est codé en binaire (par opposition au format de texte lisible par l'homme), le GUID peut être stocké dans une structure avec quatre champs différents comme suit. Ce format diffère de la norme UUID uniquement dans l'ordre des octets des 3 premiers champs.
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
GUID est l'implémentation par Microsoft de la norme UUID.
Par Wikipedia :
Le terme GUID fait généralement référence à l'implémentation par Microsoft de la norme UUID ( Universally Unique Identifier ).
Une citation mise à jour de ce même article Wikipedia:
La RFC 4122 déclare elle-même que les UUID "sont également appelés GUID". Tout cela suggère que "GUID", tout en se référant à l'origine à une variante d'UUID utilisée par Microsoft, est devenu simplement un nom alternatif pour UUID ...
The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
Pas vraiment. GUID est plus centré sur Microsoft tandis que UUID est utilisé plus largement (par exemple, comme dans le schéma urn: uuid: URN et dans CORBA).
Le GUID a une utilisation de longue date dans les domaines où il ne s'agit pas nécessairement d'une valeur de 128 bits de la même manière qu'un UUID. Par exemple, la spécification RSS définit les GUID comme n'importe quelle chaîne de votre choix, tant qu'elle est unique, avec un attribut "isPermalink" pour spécifier que la valeur que vous utilisez n'est qu'un lien permanent vers l'élément en cours de syndication.
La GUID
représentation textuelle de Microsoft peut prendre la forme d'un UUID entouré de deux accolades {}
.
Une différence entre GUID dans SQL Server et UUID dans PostgreSQL est la casse des lettres; SQL Server sort en haut tandis que PostgreSQL sort en bas.
Les valeurs hexadécimales "a" à "f" sont sorties en minuscules et ne respectent pas la casse à l'entrée. - rfc4122 # section-3