Générez des identifiants universellement uniques (UUID) pour diverses applications. Créez à la fois des UUID de version 1 (basés sur le temps) et de version 4 (aléatoires) à utiliser dans des systèmes distribués, des bases de données, et plus encore.
Un identifiant unique universel (UUID) est un nombre de 128 bits utilisé pour identifier des informations dans les systèmes informatiques. Les UUID sont standardisés par l'Open Software Foundation (OSF) dans le cadre de l'environnement de calcul distribué (DCE). Ces identifiants sont conçus pour être uniques à la fois dans l'espace et dans le temps, ce qui les rend idéaux pour diverses applications dans les systèmes distribués et au-delà.
Cet outil de génération de UUID vous permet de créer à la fois des UUID de version 1 (basés sur le temps) et de version 4 (aléatoires). Ces identifiants sont utiles dans divers scénarios où une identification unique est requise, tels que les clés de base de données, les systèmes distribués et les protocoles réseau.
Un UUID est généralement représenté par 32 chiffres hexadécimaux, affichés en cinq groupes séparés par des tirets, sous la forme 8-4-4-4-12 pour un total de 36 caractères (32 caractères alphanumériques et 4 tirets). Par exemple :
1550e8400-e29b-41d4-a716-446655440000
2
Les 128 bits d'un UUID sont divisés en champs spécifiques, chacun portant différentes informations selon la version du UUID :
Voici un diagramme illustrant la structure du UUID :
Il existe plusieurs versions de UUID, chacune ayant sa propre méthode de génération :
Cet outil se concentre sur la génération de UUID de version 1 et de version 4.
Les UUID de version 1 sont générés à l'aide des composants suivants :
La formule pour générer un UUID de version 1 peut être exprimée comme suit :
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
Les UUID de version 4 sont générés à l'aide d'un générateur de nombres aléatoires cryptographiquement sécurisé. La formule est simplement :
1UUID = random_128_bit_number
2
Avec des bits spécifiques définis pour indiquer la version (4) et la variante.
Les UUID ont de nombreuses applications dans divers domaines de l'informatique et de l'ingénierie logicielle :
Clés de base de données : Les UUID sont souvent utilisés comme clés primaires dans les bases de données, en particulier dans les systèmes distribués où plusieurs nœuds peuvent générer des enregistrements simultanément.
Systèmes distribués : Dans les grands systèmes distribués, les UUID aident à identifier de manière unique les ressources, les transactions ou les événements à travers plusieurs nœuds ou centres de données.
Adressage de contenu : Les UUID peuvent être utilisés pour créer des identifiants uniques pour le contenu dans des systèmes de stockage adressables par contenu.
Gestion des sessions : Les applications Web utilisent souvent des UUID pour gérer les sessions utilisateur, garantissant que chaque session a un identifiant unique.
Identification des dispositifs IoT : Dans les applications Internet des objets (IoT), les UUID peuvent être utilisés pour identifier de manière unique les dispositifs individuels dans un réseau.
Bien que les UUID soient largement utilisés, il existe des approches alternatives pour générer des identifiants uniques :
IDs auto-incrémentés : Simples et couramment utilisés dans les systèmes de base de données uniques, mais pas adaptés aux environnements distribués.
IDs basés sur l'horodatage : Peuvent être utiles pour des données ordonnées par le temps mais peuvent rencontrer des problèmes de collision dans des scénarios à forte concurrence.
IDs Snowflake : Développés par Twitter, ces IDs combinent horodatage et numéro de travail pour générer des IDs uniques dans des systèmes distribués.
ULID (Identifiant universel unique lexicographiquement triable) : Une alternative plus récente qui vise à être plus conviviale et triable que les UUID.
Le concept de UUID a été introduit pour la première fois dans le système de calcul en réseau Apollo et a ensuite été standardisé par l'Open Software Foundation (OSF) dans le cadre de l'environnement de calcul distribué (DCE) dans les années 1990. La spécification initiale a été publiée en 1997 sous la forme de l'ISO/IEC 11578:1996 et a été révisée en 2005 dans le cadre de l'ISO/IEC 9834-8:2005.
Les jalons clés de l'histoire des UUID :
Au fil du temps, les UUID sont devenus un outil essentiel dans les systèmes distribués et la conception de bases de données, avec diverses implémentations et adaptations à travers différents langages de programmation et plateformes.
Voici des exemples de génération de UUID dans divers langages de programmation :
1import uuid
2
3## Générer un UUID de version 4 (aléatoire)
4random_uuid = uuid.uuid4()
5print(f"UUID de version 4 : {random_uuid}")
6
7## Générer un UUID de version 1 (basé sur le temps)
8time_based_uuid = uuid.uuid1()
9print(f"UUID de version 1 : {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Générer un UUID de version 4 (aléatoire)
4const randomUuid = uuidv4();
5console.log(`UUID de version 4 : ${randomUuid}`);
6
7// Générer un UUID de version 1 (basé sur le temps)
8const timeBasedUuid = uuidv1();
9console.log(`UUID de version 1 : ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Générer un UUID de version 4 (aléatoire)
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("UUID de version 4 : " + randomUuid);
8
9 // Générer un UUID de version 1 (basé sur le temps)
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("UUID de version 1 : " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Générer un UUID de version 4 (aléatoire)
4random_uuid = SecureRandom.uuid
5puts "UUID de version 4 : #{random_uuid}"
6
7## Ruby n'a pas de méthode intégrée pour les UUID de version 1
8## Vous devrez utiliser une gem comme 'uuidtools' pour cela
9
1<?php
2// Générer un UUID de version 4 (aléatoire)
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "UUID de version 4 : " . $randomUuid . "\n";
11
12// PHP n'a pas de méthode intégrée pour les UUID de version 1
13// Vous devrez utiliser une bibliothèque comme 'ramsey/uuid' pour cela
14?>
15
Découvrez plus d'outils qui pourraient être utiles pour votre flux de travail