Generateur d'ULID
Generez des ULID : 26 caracteres, compatibles URL, triables dans le temps et proches des UUID dans leur usage.
Generer des ULID
Creez des identifiants uniques pouvant etre tries
ULID generes
Cliquez sur « Generer des ULID » pour creer des identifiants uniques
Questions Fréquentes
Qu'est-ce qu'un ULID ?
Un identifiant de 26 caractères qui contient un horodatage de 48 millisecondes et 80 bits aléatoires, de sorte que les identifiants sont triés par heure de création.
Pourquoi choisir l'ULID plutôt que l'UUID ?
Les ULID sont triés lexicographiquement par heure, sont plus courts et utilisent Base32 Crockford sécurisée pour les URL, sans tirets à gérer.
Puis-je faire confiance à l'ordre ?
Sur différentes millisecondes, oui. Dans la même milliseconde, l'ordre entre deux ULID n'est pas garanti.
Les ULID fonctionnent-ils là où les UUID sont utilisés ?
Ils s'insèrent dans la plupart des colonnes de chaînes et des API, et la conversion entre ULID et UUID est simple lorsque les deux formats doivent coexister.
Quelle est la longueur d'un ULID et quels caracteres utilise-t-il ?
Chaque ULID compte exactement 26 caracteres en Base32 Crockford, qui comprend les chiffres 0-9 et les lettres A-Z a l'exception de I, L, O et U. Cette longueur fixe garde la taille des colonnes de base de donnees previsible et evite les caracteres ambigus lorsque les identifiants sont lus a voix haute ou saisis manuellement.
Les ULID sont-ils sans risque dans les URL et les noms de fichiers ?
Oui. Les ULID ne contiennent que des lettres majuscules et des chiffres, sans tirets, barres obliques ni symboles : ils passent donc dans les URL, les segments de chemin et les noms de fichiers sans encodage en pourcentage. Leur longueur de 26 caracteres tient aussi aisement dans les motifs de routes et les lignes de logs.
Combien d'ULID peuvent etre generes dans la meme milliseconde ?
La section aleatoire de 80 bits fournit environ 2^80 valeurs par milliseconde, ce qui rend les collisions pratiquement impossibles. Si votre application cree plusieurs identifiants en une milliseconde, utilisez le mode monotone, qui incremente la partie aleatoire de un afin de preserver l'ordre de tri.
Comment lire l'horodatage d'un ULID ?
Les 10 premiers caracteres encodent l'horodatage Unix en millisecondes, tandis que les 16 caracteres restants sont aleatoires. Decodez ces 10 caracteres depuis le Base32 Crockford pour obtenir un nombre, puis convertissez-le avec n'importe quel outil d'horodatage Unix pour connaitre l'heure de creation exacte.
Structure d'un ULID
Chaque ULID se compose de deux parties : l'horodatage et l'alea
01ARZ3NDEKTSV4RRFFQ69G5FAV
Exemple : cet ULID a ete cree a une milliseconde precise et contient 80 bits d'alea
Horodatage (48 bits)
Nombre de millisecondes depuis l'epoch Unix (1970-01-01). Permet un tri chronologique jusqu'en 10889.
Aleatoire (80 bits)
Valeur aleatoire cryptographiquement securisee. Permet de generer jusqu'a 1,21 quintillion d'identifiants uniques par milliseconde.
Specifications techniques
L'ULID est concu pour etre triable, compatible URL et proche des UUID dans son usage
Caracteristiques
- Aleatoire cryptographiquement securise
- Generation uniquement cote client
- Tri lexicographique possible
- Aucun caractere special
Caractéristiques techniques
- 26 caracteres (128 bits)
- Encodage Base32 de Crockford
- 48 bits d'horodatage + 80 bits d'alea
- 1,21 million d'ID par milliseconde
Références et Ressources
-
ULID Specification - GitHub
La spécification ULID, triable — des identifiants uniques préfixés par un horodatage.
-
Universally Unique Identifier - Wikipedia
Référence générale sur les identifiants uniques universels (UUID) et leurs variantes.