Langue : en | de | fr | es

UUID vs GUID – Principales différences et quand utiliser chacun d'eux
Retour aux blogs

JS Generate UUID: Comment créer un UUID en JavaScript

Les identifiants uniques sont essentiels dans les applications modernes. Ils permettent de distinguer les objets, les sessions, les enregistrements de base de données et les événements des systèmes distribués sans collision. Un identifiant universellement unique (UUID) résout ce problème en générant des identifiants avec une probabilité extrêmement faible de duplication.

Dans ce guide, vous apprendrez des méthodes pratiques pour créer des identifiants uniques en JavaScript en utilisant les API natives du navigateur, des packages externes et des implémentations manuelles. Les exemples conviennent aux environnements frontend et backend.

Comprendre les UUID dans les applications JavaScript

Un UUID est un identifiant de 128 bits généralement représenté sous forme de chaîne avec le format suivant :

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Exemple :

c32d8b45-92fe-44f6-8b61-42c2107dfe87

Chaque segment contient des caractères hexadécimaux. La version de l’UUID détermine comment la valeur est générée.

Les versions courantes incluent :

  • v1 — basé sur l’horodatage et l’adresse MAC
  • v3 — généré à l’aide d’un espace de noms et d’un hachage MD5
  • v4 — généré aléatoirement
  • v5 — espace de noms avec hachage SHA-1
  • v7 — identifiants ordonnés dans le temps

Dans la plupart des projets web, les développeurs préfèrent v4 car il est aléatoire et simple à générer.

Méthodes pour créer des identifiants uniques en JavaScript

Il existe plusieurs façons pratiques de générer des identifiants selon votre environnement et vos besoins.

Comparaison des approches disponibles

Méthode

Environnement

Sécurité

Dépendance

Web Crypto API

Navigateur

Élevée

Aucune

uuid npm package

Node.js / Navigateur

Élevée

console.log(id);

Exemple de sortie :

7e8c2c70-6c47-4d9f-b49b-7c9e0df6b81d

Les bibliothèques offrent généralement des fonctionnalités supplémentaires telles que :

  • conversion en tableau d’octets
  • génération d’espace de noms
  • identifiants déterministes

Exemple JavaScript UUID avec sélection de version

Le package uuid permet plusieurs stratégies de génération.

Exemple : génération de plusieurs versions

import { v1 as uuidv1, v4 as uuidv4, v5 as uuidv5 } from ‘uuid’;

const timeUUID = uuidv1();

const randomUUID = uuidv4();

console.log(timeUUID);

console.log(randomUUID);

Cas d’utilisation typiques :

Version UUID

Cas d’utilisation

v1

Ordonnancement d’événements

v4

Identifiants aléatoires

v5

IDs déterministes

Les développeurs choisissent souvent v4 pour la plupart des systèmes car il ne révèle pas d’informations sur le matériel ou l’horodatage.

Implémentation d’un générateur personnalisé léger

Dans les environnements sans Web Crypto ni packages npm, un générateur manuel peut être suffisant.

Exemple : créer une fonction UUID en JavaScript

function generateId() {

return ‘xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx’

.replace(/[xy]/g, function(c) {

const r = Math.random() * 16 | 0;

const v = c === ‘x’ ? r : (r & 0x3 | 0x8);

return v.toString(16);

});

}

console.log(generateId());

Cette implémentation imite le format de la version 4.

Cependant, il existe des limitations :

  • utilise Math.random() au lieu d’un aléatoire cryptographiquement sécurisé
  • ne convient pas aux identifiants sensibles du point de vue de la sécurité

Utilisez-le uniquement pour des tâches légères comme des clés UI temporaires.

Identifiants modernes ordonnés dans le temps

Certains systèmes distribués nécessitent des identifiants triables.

Exemple : nouvelle approche UUID en JavaScript utilisant v7

Installer un package dédié :

npm install uuidv7

Puis générer des identifiants :

import { uuidv7 } from ‘uuidv7’;

const id=uuidv7();

console.log(id);

Les identifiants de version 7 combinent des horodatages avec de l’aléatoire, ce qui les rend utiles pour :

  • journaux d’événements
  • bases de données distribuées
  • systèmes à fort volume

Cas d’utilisation pratiques des identifiants JS

Les développeurs génèrent fréquemment des identifiants uniques dans des situations telles que :

Enregistrements de base de données

const user = {

id: crypto.randomUUID(),

name: “Alice”

};

Clés de composants React

const items = data.map(item => ({

key: crypto.randomUUID(),

value: item

}));

Suivi des requêtes API

const requestId = crypto.randomUUID();

fetch(”/api/data”, {

headers: {

“X-Request-ID”: requestId

}

});

Ces identifiants aident au débogage, à la journalisation et au traçage distribué.

Bonnes pratiques pour la génération d’identifiants

Suivez ces recommandations lors de la mise en œuvre de la génération d’identifiants :

  1. Privilégier un aléatoire cryptographiquement sécurisé
    Évitez d’utiliser Math.random() lorsque c’est possible.
  2. Utiliser des bibliothèques éprouvées en production
    Les bibliothèques gèrent le versionnement et les cas limites.
  3. Choisir la bonne version
    ○ v4 → la plupart des applications
    ○ v7 → identifiants triables
    ○ v1 → systèmes hérités
  4. Éviter de générer des identifiants à la fois côté client et côté serveur pour la même ressource
    Cela peut créer des problèmes de synchronisation.

Conclusion

Les identifiants uniques sont fondamentaux dans les systèmes logiciels distribués. JavaScript offre plusieurs stratégies pour les générer selon l’environnement et les exigences de sécurité.

Les développeurs peuvent :

  • s’appuyer sur l’API Web Crypto pour les environnements navigateur
  • utiliser un package externe pour les projets Node.js
  • implémenter des générateurs légers pour des tâches simples
  • adopter des identifiants modernes ordonnés dans le temps pour les systèmes à grande échelle

Comprendre quand et comment générer des valeurs UUID en JS garantit une identification fiable des ressources, réduit le risque de collision et simplifie l’architecture des applications.