Qu'est-ce qu'un UUID court ?
Un UUID court contient la même quantité d'aléatoire qu'un UUID ordinaire, mais l'écrit avec un alphabet plus dense. Seize octets de hasard donnent ainsi 22 caractères au lieu de 36, à unicité égale.
Des variantes plus courtes sont proposées : 8 octets donnent 11 caractères (64 bits) et 12 octets en donnent 16 (96 bits). La longueur s'ajuste donc au besoin réel, par exemple quand l'identifiant doit rester visible dans une URL.
Mode d'emploi
- Choisissez la longueur sous Octets aléatoires.
- Indiquez le nombre d'identifiants.
- Cliquez sur Générer et copiez les valeurs.
Cas d'usage
- Liens courts et jetons de partage dans des URL.
- Identifiants de session et de cookie à la place comptée.
- Noms de fichiers qui ne doivent pas porter toute la longueur d'un UUID.
Les versions d'UUID en un coup d'œil
| Version | Triable | Basé sur | À utiliser pour |
|---|---|---|---|
| v1 | Non | Horodatage + adresse MAC | Systèmes anciens qui attendent encore du v1 |
| v3 | Non | Hachage MD5 d'un nom | Identifiants déterministes quand MD5 est imposé |
| v4 | Non | 122 bits aléatoires | Presque tous les identifiants d'usage courant |
| v5 | Non | Hachage SHA-1 d'un nom | Quand un même nom doit toujours donner le même identifiant |
| v6 | Oui | Horodatage, réordonné | Des identifiants triables sans renoncer à l'aléatoire |
| v7 | Oui | Temps Unix en millisecondes | Clés primaires de base de données et identifiants d'événements |
| v8 | Non | Votre propre disposition de bits | Formats propres à un éditeur ou expérimentaux |
Les sept versions font 128 bits et s'écrivent toutes dans la forme 8-4-4-4-12. Seule la signification des bits change.
Questions fréquentes
Est-ce encore un UUID ?
Au sens strict, non : un UUID fait exactement 128 bits et possède une écriture canonique. La variante 16 octets contient la même quantité d'aléatoire, mais ne porte ni champ de version ni champ de variante, car le Base64url ne les représente pas.
Pourquoi du Base64url et pas du Base62 ?
Parce que le Base64url passe dans les URL et les noms de fichiers sans échappement et se limite aux caractères sûrs - et _. Un alphabet Base62 maison ne ferait qu'ajouter de la complexité.
Quel est le risque de collision ?
Avec 16 octets, aussi faible qu'avec un UUID. Avec 8 octets, il est plus élevé : pour des identifiants produits en grande quantité, préférez la variante 16 octets.