Générateur de Nano ID

Générez en masse, directement dans votre navigateur, des identifiants courts, uniques et sûrs pour les URL. Choisissez librement le jeu de caractères (par défaut, alphanumérique, minuscules, majuscules, chiffres ou hexadécimal) et la longueur — idéal lorsque vous avez besoin de quelque chose de plus court qu'un UUID.

Comparaison des formats d'ID

Format Longueur Taille de l'alphabet Triable par ordre de création Description
Nano ID 21 caractères par défaut (configurable de 1 à 64) 64 caractères Non (entièrement aléatoire) Un ID court et aléatoire composé uniquement de caractères sûrs pour les URL. L'alphabet et la longueur sont librement configurables.
UUID v4 36 caractères (dont 4 tirets) 16 caractères (hexadécimal) Non (entièrement aléatoire) Un identifiant de 128 bits normalisé dans la RFC 9562. La notation hexadécimale séparée par des tirets est le format standard.
ULID 26 caractères 32 caractères (Base32) Oui (les 10 premiers caractères forment un horodatage) Commence par un horodatage à la milliseconde, ce qui permet de trier les ID par ordre lexicographique correspondant à l'ordre de création.

Ce qu'est Nano ID

Nano ID est un procédé qui engendre de courts identifiants aléatoires composés uniquement de caractères sûrs pour les URL. Par défaut, il assemble 21 caractères tirés d'un alphabet de 64 (A-Za-z0-9_-), ce qui le garde plus court qu'un UUID tout en conservant une aléa amplement suffisante en pratique. Cet outil vous laisse fixer librement l'alphabet (par défaut, alphanumérique, minuscules, majuscules, chiffres ou hexadécimal), la longueur et le nombre, et créer des identifiants en lot.

La génération se déroule entièrement dans votre navigateur au moyen des nombres aléatoires cryptographiquement sûrs de l'API Web Crypto : rien n'est donc jamais envoyé aux serveurs de toolbase.cc. Vous n'avez aucun secret à porter dans un formulaire et pouvez copier les identifiants tels quels pour les employer comme slugs d'URL, données de test, noms de fichiers et autres.

Comment utiliser Nano ID

  1. Choisir l'alphabet Retenez l'alphabet qui convient à votre usage parmi par défaut (les 64 caractères sûrs pour les URL), alphanumérique, minuscules seules, majuscules seules, chiffres seuls et hexadécimal.
  2. Fixer la longueur Indiquez le nombre de caractères des identifiants. Plus vous les raccourcissez, plus la probabilité de collision s'élève : gardez en vue l'équilibre propre à votre usage.
  3. Indiquer le nombre à engendrer Saisissez combien d'identifiants vous voulez d'un coup. S'il vous en faut plusieurs — pour créer des données de test en lot, par exemple —, vous les précisez tous ici.
  4. Appuyer sur le bouton d'engendrement Après l'appui, les identifiants conformes à vos réglages sont créés aussitôt dans le navigateur et présentés en liste.
  5. Les copier Chaque identifiant a son propre bouton de copie ; si vous voulez le tout, copier tout les prend ensemble.

Astuces pour en tirer le meilleur parti

  • Nano ID est généré avec un aléa cryptographiquement sûr via l'API Web Crypto et entièrement traité dans votre navigateur — rien n'est jamais envoyé aux serveurs de toolbase.cc.
  • L'alphabet par défaut de 64 caractères (A-Za-z0-9_-) ne contient ni symboles ni espaces, il peut donc être utilisé sans risque directement dans des chemins d'URL ou des noms de fichiers.
  • Restreindre l'alphabet aux chiffres uniquement ou à l'hexadécimal permet de générer des ID conformes au format utilisé par des systèmes existants (par exemple des numéros de commande composés uniquement de chiffres).
  • Plus l'ID est court, plus la probabilité de collision augmente. Les systèmes émettant de nombreux ID devraient rester proches des 21 caractères par défaut, tandis que 8 à 10 caractères peuvent suffire pour de petits jeux de test.
  • Augmentez le nombre puis utilisez « Tout copier » pour générer rapidement en masse des données de test ou des jeux de données initiaux.

Quand Nano ID rend service

Engendrer des slugs d'URL

Comme identifiant unique dans le chemin d'une URL raccourcie ou d'un lien de partage, une chaîne sûre pour les URL, dépourvue de symboles encombrants, s'emploie exactement telle quelle.

Charger des données de test ou factices

Comme clés primaires ou identifiants des enregistrements d'exemple que vous chargez en base pendant le développement, vous en engendrez autant qu'il en faut d'un seul coup.

Émettre des identifiants de session et de requête

Comme identifiant provisoire servant au suivi des journaux ou à la distinction des requêtes d'interface, il vous fournit une chaîne courte et maniable.

Numéroter des noms de fichiers sans collision

Commode lorsque vous voulez adjoindre un identifiant aléatoire au nom d'enregistrement d'un fichier téléversé et empêcher que des fichiers homonymes s'écrasent.

Émettre des clés d'interface et des codes de référence simples

Non pour des identifiants de production, mais aisément sous la main pour numéroter les courts codes de référence des outils internes et des environnements de test.

Le vocabulaire employé ici

Nano ID
Un procédé d'engendrement de courts identifiants aléatoires composés uniquement de caractères sûrs pour les URL. Par défaut, il assure une aléa élevée avec 21 caractères tirés d'un alphabet de 64.
UUID
Un identifiant de 128 bits normalisé par une RFC. La notation hexadécimale de 36 caractères séparée par des tirets est largement employée comme forme standard.
ULID
Un identifiant de 26 caractères portant en tête un horodatage à la milliseconde. À la différence de Nano ID et d'UUID, il se trie comme chaîne dans l'ordre d'engendrement.
API Web Crypto
L'interface de travail cryptographique que les navigateurs fournissent en standard. Elle sait engendrer des nombres aléatoires difficiles à prévoir, ce sur quoi repose la sûreté des identifiants.
Nombres aléatoires cryptographiquement sûrs
Des nombres aléatoires conçus pour que la valeur suivante ne puisse être prédite statistiquement. Ils abaissent le risque qu'un identifiant soit deviné ou usurpé.
Probabilité de collision
La probabilité que deux engendrements distincts produisent par hasard le même identifiant. Plus il y a de caractères et plus l'alphabet est vaste, plus elle diminue.
Problème des anniversaires
Le phénomène selon lequel plus un groupe compte de personnes, plus il est probable que deux partagent un anniversaire. Il sert à l'approximation qui estime la probabilité de collision des identifiants.

Questions fréquentes

Si vous voulez un ID court à insérer directement dans une URL ou un nom de fichier, Nano ID convient bien. Si vous avez besoin d'un format normalisé par une RFC, ou d'une interopérabilité avec d'autres systèmes, UUID (en particulier v4) reste le choix le plus sûr.

Avec les 21 caractères par défaut et un alphabet de 64 symboles, vous obtenez environ 126 bits d'aléa, ce qui est négligeable en pratique. D'après l'approximation du problème des anniversaires, il faudrait générer environ 1,09×10¹⁹ ID avant que la probabilité de collision n'atteigne 50 %.

Oui, mais comme UUID v4, il est entièrement aléatoire, ce qui rend l'insertion dans un index B-Tree moins efficace qu'avec AUTO_INCREMENT. Si vous avez besoin d'ID triables par ordre d'insertion, envisagez plutôt un format à horodatage initial comme ULID.

Oui. À longueur égale, un alphabet plus petit (moins de caractères distincts) signifie moins d'aléa et une probabilité de collision plus élevée. Pour atteindre le même niveau de sécurité que l'alphabet de 64 caractères en n'utilisant que des chiffres (10 caractères), il faudrait un ID plus long.
Tool-kun

Anecdote — Pourquoi Nano ID peut être plus court qu'un UUID

Nano ID est une bibliothèque JavaScript de génération d'ID publiée en 2017 par Andrey Sitnik, le développeur de PostCSS. Bien que dépourvue de dépendances et minuscule (à peine quelques centaines d'octets de code), son usage d'un aléa cryptographiquement sûr lui a valu une large reconnaissance, et elle totalise aujourd'hui plusieurs dizaines de millions de téléchargements hebdomadaires sur npm.

La brièveté d'un ID dépend du nombre de caractères distincts que compte son alphabet. Un UUID n'utilise que des chiffres hexadécimaux (16 symboles) pour encoder 128 bits, ce qui nécessite 36 caractères. Nano ID utilise 64 symboles et peut ainsi condenser une quantité comparable d'aléa (126 bits par défaut) en seulement 21 caractères. La raison : chaque caractère transporte davantage d'information (log₂64 = 6 bits contre log₂16 = 4 bits pour l'hexadécimal).

Les réglages par défaut (21 caractères, alphabet de 64 symboles) offrent environ 126 bits d'aléa, ce qui équivaut presque aux 122 bits d'UUID v4. D'après l'approximation du problème des anniversaires, il faudrait générer environ 1,09×10¹⁹ ID avant que la probabilité de collision n'atteigne 50 %, il y a donc en pratique peu de quoi s'inquiéter.