Générateur de UUID

Ajouter au site Métainformation

Autres outils

Générez un identifiant UUID/GUID

Générez un identifiant UUID/GUID

L'identifiant universel unique (UUID), également connu sous le nom d'identifiant global unique (GUID), a été largement utilisé dans les systèmes informatiques.

Il s'agit d'un code 128 bits généré par le système en fonction de variables et de constantes : heure actuelle, adresse MAC, hachage SHA-1, espace de noms MD5. Le résultat final de la génération d'un UUID, affiché sous la forme d'un code alphanumérique de 32 caractères séparés par des traits d'union, peut sembler arbitraire, mais en fait c'est le résultat de calculs complexes. Ainsi, un ordinateur n'"invente" pas un code, mais le forme à partir de grandeurs techniques précises et pertinentes à un instant donné.

La probabilité que le même UUID soit généré sur deux ordinateurs différents à des moments différents tend vers zéro, ce qui permet d'utiliser les codes résultants pour l'identification des données ponctuelles/locales sans référence au centre de coordination. Aujourd'hui, UUID/GUID est omniprésent dans les réseaux en ligne et hors ligne, et fonctionne efficacement non seulement dans l'espace Internet mondial, mais également dans les systèmes informatiques autonomes.

Historique UUID

Les codes UUID 128 bits ont été utilisés pour la première fois par la société américaine Apollo Computer dans les années 1980. Ils étaient basés sur les codes 64 bits plus simples utilisés dans Domain/OS et ont été largement utilisés dans l'environnement informatique de l'Open Software Foundation.

Avec l'avènement des premières plates-formes Windows, l'identifiant unique au monde a été généralisé et standardisé. Microsoft a adopté la conception DCE d'Apollo Computer et a enregistré l'espace de noms URN dans la RFC 4122. En 2005, cette dernière a été proposée comme nouvelle norme par l'IETF et l'UUID a été normalisé au sein de l'UIT.

Plus tôt en 2002, des problèmes de performances système ont été identifiés lors de l'utilisation d'UUID comme clés primaires dans les bases de données locales. Ceux-ci ont été corrigés dans la version 4 en ajoutant un suffixe non aléatoire basé sur l'heure système de l'ordinateur. L'approche dite COMB (Combined GUID Time Identifier) ​​augmente les risques de duplication de code, mais en même temps améliore considérablement les performances lorsque l'on travaille avec Microsoft SQL Server.

Avec le développement des technologies informatiques, l'identifiant unique universel a cessé d'être un outil technique hautement spécialisé, et aujourd'hui tout le monde peut l'utiliser. La probabilité de répétition des codes générés n'est pas égale à zéro, mais tend vers elle, et toute information numérique peut être identifiée par eux, après quoi ils peuvent être combinés en tableaux de données uniques avec un minimum de risques de répétition.

Avantages UUID

Les générateurs de codes uniques mondiaux ne nécessitent pas de réconciliation/synchronisation centralisée des données et sont librement accessibles à tous les utilisateurs. Les principaux avantages de l'UUID incluent :

  • Risques minimes de "collision" (répétition) des codes. Malgré leur utilisation massive, la probabilité de répétition tend vers zéro.
  • Possibilité de joindre différents tableaux de données en utilisant des UUID comme clés primaires (uniques).
  • Répartition simplifiée des données sur plusieurs serveurs dispersés
  • Possibilité de générer des codes hors ligne.

Des codes d'identification uniques, écrits au format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, permettent aux systèmes dispersés de reconnaître les informations sans coordination à partir d'un seul centre de données : avec une probabilité quasi nulle d'erreurs/de répétitions. Cette fonctionnalité, associée à la facilité d'utilisation et aux faibles exigences de performances informatiques, rend l'UUID très demandé et indispensable dans une grande variété d'industries informatiques et de systèmes informatiques autonomes.

Universally unique identifier

Universally unique identifier

L'UUID peut générer des codes en utilisant différents algorithmes et variables/valeurs constantes.

Il existe 5 versions de l'identifiant au total, utilisant la date/heure du système et les adresses MAC, les protocoles de sécurité DCE, le hachage MD5, le hachage SHA-1 et l'espace de noms lors de la génération.

Dans tous les cas, le résultat final est affiché au format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (un nombre en notation hexadécimale, composé de lettres latines minuscules et de chiffres, et divisé par des traits d'union en cinq blocs : 8-4 -4-4- 12), M signifie version, N signifie variante UUID.

Ainsi, le système utilise 36 caractères à la fois (26 lettres et 10 chiffres), donc la probabilité de répéter des codes à 32 chiffres tend vers zéro, malgré le fait qu'ils soient générés quotidiennement par des millions d'utilisateurs à travers le monde.

Versions UUID

Version 1

La première version de l'identifiant unique, lors de la génération du code, est basée sur l'adresse MAC de l'ordinateur et son heure système, qui change sa valeur numérique 1 fois par seconde. Le processus de génération se compose de cinq étapes :

  • Les 32 bits d'information inférieurs sont tirés de la balise UTC. Ils sont convertis en 8 caractères hexadécimaux et occupent 4 octets.
  • En moyenne, 16 bits d'informations sont extraits de la même étiquette UTC et convertis en 4 caractères hexadécimaux occupant 2 octets.
  • Les 12 bits d'information supérieurs de la balise UTC sont extraits et convertis en 4 caractères hexadécimaux supplémentaires.
  • Encore 1 à 3 bits tombent sur la séquence d'horloge et réduisent les risques de collisions en introduisant un degré d'aléatoire/d'incertitude. L'heure du système est soit ralentie, soit retardée de manière conditionnelle, de sorte que deux identifiants ou plus travaillant sur le même ordinateur en même temps ne se "croisent" pas.
  • Les 6 octets restants sont une valeur constante générée en fonction de l'adresse MAC de l'appareil. Il se compose de 12 caractères hexadécimaux et a une taille de 48 bits.

Étant donné que l'algorithme de la première version de l'UUID est inextricablement lié à l'heure système, l'utilisation de la séquence d'horloge est obligatoire. Sinon, les risques de générer les mêmes codes augmentent plusieurs fois - pendant la seconde où l'heure du système "se fige" à l'une ou l'autre valeur.

Version 2

La deuxième version est très peu différente de la première et est rarement utilisée dans la pratique. Au lieu d'une séquence d'horloge, il utilise un identifiant système lié aux données de l'utilisateur ou à d'autres valeurs uniques qui ne se répètent pas sur d'autres ordinateurs ou se répètent très rarement. L'effet du hasard dans la deuxième version est minimisé et peut être utilisé pour améliorer la sécurité d'un environnement informatique distribué.

Versions 3 et 5

Ils ont beaucoup en commun : ils utilisent des noms uniques et des noms (de l'espace MD5) pour créer des codes, c'est-à-dire des valeurs non aléatoires. Seule la version 3 utilise un hachage standard, tandis que la version 5 utilise un hachage SHA-1. Ces identifiants dépendent moins des variables aléatoires.

Version 4

La génération de cette version UUID est aléatoire à plus de 90 %. Il a 6 bits pour les valeurs constantes et 122 pour les valeurs arbitraires. L'implémentation de l'algorithme est que 128 bits d'informations sont d'abord générés de manière aléatoire, et 6 d'entre eux sont remplacés par des données de version et de variante.

Le rôle du générateur de nombres pseudo-aléatoires dans la quatrième version est le maximum, et s'il a un algorithme trop simple, les risques de répétitions/collisions augmentent considérablement. Malgré cela, c'est la quatrième version qui est de loin la plus courante et la plus souvent utilisée en pratique.

Options UUID

L'UUID unique a été affiné plusieurs fois au fur et à mesure du développement de la technologie informatique, et il est aujourd'hui présenté en plusieurs versions.

Option 0

Conçu pour fonctionner avec les anciennes bases de données au format Apollo Network Computing System 1.5 1988. Cette option est rétrocompatible avec eux et n'entre pas en conflit avec les UUID historiques NCS.

Options 1 et 2

Ils sont utilisés pour identifier les blocs et tableaux de données modernes, et sous forme de texte canonique, ils ne diffèrent pas les uns des autres, à l'exception de l'ordre dans lequel les bits de variante sont écrits. Ainsi, l'option 1 utilise l'ordre des octets big-endian et l'option 2 utilise le titre-endian. Le premier est le principal, et le second est réservé pour travailler avec les premiers GUID de Microsoft Windows.

Option 3

Actuellement non utilisé. Il s'agit d'une version réservée pour une utilisation future - lorsque les possibilités des options précédentes sont épuisées.

La plupart des systèmes codent l'identifiant en big-endian, mais il y a des exceptions. Par exemple, le marshaling dans les bibliothèques Microsoft COM/OLE utilise le mixed-endian lors de la génération de code à partir des blocs title-endian et big-endian. Le premier correspond aux trois premiers composants de l'UUID et le second aux deux derniers.