Générateur UUID FAQ
Générer des UUIDs aléatoires (v4)
Deux UUID peuvent-ils entrer en collision ?
Théoriquement oui, pratiquement non. Avec les 122 bits aléatoires d'UUID v4, la probabilité de collision de 50% n'est atteinte qu'après 2,71 × 10^18 UUID. Générer un milliard d'UUID par seconde prendrait 85 ans pour atteindre cette probabilité. Pour des fins pratiques, les collisions sont impossibles.
Quelle version UUID devrais-je utiliser ?
Utilisez UUID v4 (aléatoire) pour la plupart des applications - c'est simple, privé et universellement supporté. Utilisez v5 si vous avez besoin d'UUID déterministes à partir d'entrées cohérentes. Envisagez v7 pour les clés primaires de base de données où l'ordre de tri améliore les performances.
Les UUID sont-ils séquentiels ?
UUID v4 est aléatoire, pas séquentiel. V1 est grossièrement ordonné dans le temps mais pas strictement séquentiel. V7 est séquentiel par horodatage. Si vous avez besoin d'une séquence stricte, utilisez des ID de base de données auto-incrémentés ou combinez des UUID avec des numéros de séquence.
Combien d'espace de stockage un UUID nécessite-t-il ?
16 octets (128 bits) en binaire, 36 caractères en chaîne avec tirets. Certaines bases de données ont des types UUID natifs (PostgreSQL, MySQL 8.0+) qui stockent efficacement. D'autres stockent comme BINARY(16) ou CHAR(36). Pour les volumes élevés, envisagez le stockage binaire.
Les UUID sont-ils sûrs pour les ID publics ?
UUID v4 ne révèle aucune information et est sûr pour un usage public. UUID v1 révèle l'adresse MAC et le temps de création, ce qui peut être un problème de confidentialité. N'utilisez jamais les UUID à la place d'une authentification appropriée - ce sont des identifiants, pas des jetons de sécurité.
Pourquoi les UUID ont-ils des tirets ?
Les tirets groupent les champs UUID (time_low, time_mid, time_hi_and_version, clock_seq, node) et améliorent la lisibilité. Ils sont optionnels dans de nombreux systèmes - '550e8400e29b41d4a716446655440000' est tout aussi valide que la version avec tirets.