Identifiants

Générateur ULIDet décodeur

Créez un lot à la demande ou examinez vos identifiants ligne par ligne. Le décodage peut se mettre à jour automatiquement.

Générateur ULID

Entrée

Laissez vide pour lire une seule fois l’instant actuel du lot. Sinon, saisissez un entier de 0 à 281474976710655. Les secondes et dates ISO ne sont pas devinées.

Le traitement reste dans ce navigateur. Les entrées ne sont pas envoyées à un serveur.

Résultat

Réglages

Activé : premier suffixe de 80 bits aléatoire, puis ajout de un. Désactivé : chaque suffixe est tiré indépendamment. Aucun ordre garanti entre deux clics de génération.

1 à 1 000 ID ; décodage limité à 1 000 lignes physiques et 100 000 unités UTF-16. L’export inclut tous les résultats.

Choisissez les réglages, puis lancez le traitement.

Un ordre inattendu dans les journaux peut venir de l’horodatage ou de la partie aléatoire. Ce générateur ULID permet de distinguer des valeurs de millisecondes différentes de celles qui partagent le même instant mais pas le même suffixe.

Fixer une date de test ne fixe que le préfixe, jamais le tirage aléatoire. Pour une liste existante, le rapport conserve le numéro de ligne d’origine après le tri : on peut ainsi retrouver chaque valeur sans déplacer le texte saisi.

Ce que montre ce générateur ULID

Lire une date sans deviner son unité

Le générateur ULID sépare les dix caractères temporels des seize caractères aléatoires. Le nombre entier de millisecondes accompagne la date UTC, ce qui rend visible une confusion entre secondes et millisecondes.

Un identifiant se sépare en préfixe relié à une horloge et en suffixe aléatoire opaque.

Retrouver la ligne après le tri

Le champ sourceLine reste attaché à chaque entrée, y compris aux doublons. Le tri ne modifie pas la saisie ; une position différente dans le rapport peut toujours être comparée à la ligne d’origine.

Des lignes d’identifiants mélangées sont reliées à leur position triée sans perdre leur origine.

Choisir l’instant et la portée de l’ordre

01

Partir d’une milliseconde connue

En mode génération, l’exemple remplit seulement l’instant et ne crée aucun ID. Une valeur comme 1700000000 reste interprétée en millisecondes ; seul le champ vide signifie maintenant.

  • L’horloge est lue une seule fois pour tout le lot.
02

Régler le mode monotone

Activé, il fait croître le suffixe à l’intérieur du lot. Désactivé, les suffixes indépendants d’une même milliseconde peuvent se trier autrement que dans l’ordre de génération.

  • Un nouveau clic repart d’un nouveau tirage, sans reprendre le suffixe précédent.
03

Comparer les lignes sans les déplacer

Pour décoder des ULID et observer le tri, chargez l’exemple mélangé en mode décodage, puis choisissez ASCII croissant. La mise à jour attend 350 ms ; sans automatisme, utilisez le bouton ou Ctrl/Cmd+Enter.

  • Les modifications bloquent l’export. Exemple et Effacer passent par un aperçu avec restauration possible une fois.

Des lots et des champs vérifiables

Produire un lot au même instant

Créez 1 à 1 000 identifiants canoniques en majuscules. Un instant fixe détermine seulement le préfixe. Le premier suffixe est aléatoire ; les suivants sont incrémentés ou tirés à nouveau selon le mode.

Extraire l’horodatage et le suffixe

Le rapport donne les millisecondes Unix, la date UTC ISO, les deux segments de texte et le suffixe en hexadécimal. Celui-ci ne révèle ni utilisateur ni machine.

Refuser les résultats partiels

Une erreur de longueur, de caractère ou de plage indique la ligne et la colonne d’origine. Le décodage entier échoue : aucune ligne invalide ne disparaît silencieusement d’un export présenté comme complet.

Exporter au-delà de l’aperçu

L’aperçu commence par 50 entrées et s’étend par groupes de 100. Le TXT de génération et les rapports JSON incluent tout le lot, même les lignes qui ne sont pas encore affichées.

Limites de format et de garantie

Seule la casse est normalisée
Chaque ligne contient 26 caractères ASCII de Crockford Base32. Aucune correction de I/L en 1 ou de O en 0. Espaces, lignes vides, guillemets et tirets sont des erreurs ; les doublons restent présents.
Millisecondes non signées sur 48 bits
La plage va de 0 à 281474976710655, avec un premier caractère de 0 à 7. Une date très lointaine peut être valide. L’instant étant librement choisi à la génération, il ne prouve pas une création réelle.
La monotonie s’arrête au lot
Un débordement des 80 bits annule tout le lot, sans avancer l’horloge ni refaire le tirage. Deux clics, onglets ou appareils ne partagent aucun état et n’obtiennent pas un ordre global.
Ni conversion UUID ni secret
Une largeur commune de 128 bits n’implique pas les mêmes champs ou le même texte. Pas de conversion de version UUID ni de vérification d’existence en base. L’heure est lisible et les voisins monotones prévisibles : ne pas en faire un mot de passe ou un jeton d’accès.
Entrées et sorties bornées
Génération limitée à 1 000 ID ; décodage à 1 000 lignes physiques et 100 000 unités UTF-16. Pas d’import de fichier ou d’URL, d’enveloppe SQL, de suppression des doublons ni de réécriture du texte trié.

Questions sur le générateur ULID

Quelle est la différence entre un ULID et un UUID ?

ULID utilise 26 caractères Base32 et un préfixe temporel de 48 bits. UUID possède des champs définis par version et se présente généralement sous forme hexadécimale de 36 caractères. La même taille en bits ne rend pas les textes interchangeables.

Que signifie monotone ici ?

Le générateur ULID tire le premier suffixe au hasard, puis ajoute un à chaque ID suivant de ce lot. Les résultats d’un lot réussi sont strictement croissants. Chaque nouvelle génération est indépendante, sans promesse entre lots.

Puis-je extraire l'heure de création d'un ULID ?

Oui : les dix premiers caractères permettent de retrouver les millisecondes Unix puis la date UTC. Mais l’horloge peut être décalée et l’auteur peut choisir un instant arbitraire. Le décodage restitue la valeur encodée, pas une preuve de création.

Quel jeu de caractères ULID utilise-t-il ?

Crockford Base32 emploie des chiffres et lettres latines, en excluant I, L, O et U. Les minuscules valides sont acceptées ici puis normalisées en majuscules avant le tri ASCII. Les lettres ambiguës ne sont pas corrigées.

Puis-je utiliser des ULID comme clés primaires ?

C’est possible si le type de colonne, la collation et vos bibliothèques prennent cette représentation en charge. Conservez une contrainte d’unicité adaptée. Le tri temporel peut être utile, mais ne garantit ni les performances de votre index ni l’absence de collisions entre générateurs.

Une question sur un identifiant ?

Essayer le générateur ULID

Utilisez le générateur ULID avec un instant de test fixe, puis comparez le rapport trié aux lignes sources avant de l’exporter.