DevToolPal
FR

Générateur de ULID

Générez des ULID : identifiants uniques de 26 caractères, triables par date, avec un aléa sûr, par lots de 1000 maximum.

Traitement local, rien n'est envoyé

Options

ULID

0 caractères · 0 B

Ce que fait l’outil

Cet outil génère des ULID dans votre navigateur. Un ULID est un identifiant de 128 bits, comme un UUID, mais il s’écrit en 26 caractères et se trie selon sa date de création. Les ULID conviennent donc bien aux clés primaires de base de données, aux identifiants d’événements et de logs, aux noms de fichiers et à tout ce que vous voulez lister par ordre de création sans colonne de timestamp séparée.

Un ULID comporte deux parties :

  • Timestamp (10 premiers caractères) : millisecondes depuis l’epoch Unix, sur 48 bits. Il tient jusqu’à l’an 10889.
  • Aléa (16 derniers caractères) : 80 bits issus du générateur de nombres aléatoires cryptographique du navigateur.

Les ULID utilisent l’alphabet Base32 de Crockford 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Il exclut I, L, O et U pour que les identifiants soient faciles à lire à voix haute et difficiles à mal saisir, et il ne contient aucun caractère à échapper dans les URL.

Mode d’emploi

  1. Choisissez combien d’identifiants il vous faut, de 1 à 1000.
  2. Activez Monotone si les identifiants doivent garder leur ordre même quand plusieurs sont créés dans la même milliseconde. La partie aléatoire est alors incrémentée de un pour chaque nouvel identifiant.
  3. Activez Minuscules si votre système stocke les identifiants en minuscules. Les ULID ne sont pas sensibles à la casse, et la forme canonique est en majuscules.
  4. Copiez la liste ou téléchargez-la en fichier texte. Relancez la génération pour obtenir un nouveau lot.

Exemple

01ARZ3NDEKTSV4RRFFQ69G5FAV

Ici, 01ARZ3NDEK est le timestamp 1469922850259 (2016-07-30 23:54:10.259 UTC), et TSV4RRFFQ69G5FAV est la partie aléatoire. Deux ULID créés à une seconde d’intervalle partagent leurs premiers caractères : c’est pourquoi un simple tri de chaînes les range dans l’ordre chronologique.

ULID comparé à UUID

Un UUID v4 aléatoire disperse les nouvelles lignes dans tout l’index B-tree, ce qui ralentit les insertions sur les grandes tables. Les ULID sont majoritairement croissants : les nouvelles lignes arrivent à la fin de l’index, comme avec un entier auto-incrémenté, tout en restant uniques entre machines sans coordination. La contrepartie est qu’un ULID révèle approximativement sa date de création. Si cela compte, utilisez un UUID v4.

FAQ

› Qu'est-ce qu'un ULID ?

Un ULID (Universally Unique Lexicographically Sortable Identifier) est un identifiant de 128 bits écrit en 26 caractères Base32 de Crockford. Les 10 premiers caractères encodent un timestamp en millisecondes et les 16 derniers sont aléatoires.

› ULID ou UUID : lequel utiliser ?

Utilisez un ULID quand vous voulez des identifiants triés par date de création, par exemple comme clés de base de données ou identifiants de logs. Utilisez un UUID v4 quand l'identifiant ne doit pas révéler sa date de création. L'UUID v7 est une alternative standard, elle aussi ordonnée dans le temps.

› Que fait le mode monotone ?

Les identifiants créés dans la même milliseconde reçoivent normalement des parties aléatoires indépendantes, si bien que leur ordre au sein de cette milliseconde est aléatoire. En mode monotone, la partie aléatoire est plutôt incrémentée de un, de sorte que chaque identifiant du lot se trie strictement après le précédent.

› Les identifiants sont-ils générés de façon sûre ?

Oui. La partie aléatoire provient du générateur de nombres aléatoires cryptographique du navigateur, et rien n'est envoyé à un serveur.