Aller au contenu
DEV-TOOL

Générateur Nano ID — court, URL-friendly, cryptographique

Sept presets d'alphabet, cinq recettes par cas d'usage, curseur de longueur 8 à 64, génération en lot jusqu'à 10 000 — et un calculateur de collisions à l'effet anniversaire dans la même interface.

Browser-crypto · cryptographic quality This page uses your browser’s built-in cryptographic random source. Cryptographically secure pseudo-random number generator, suitable for security-relevant identifiers.
Use-case recipes
Count
1 to 10,000.
Contains lookalikes
Output
Click "Generate" — your ID appears here.
Collision probability
How many IDs will you draw?
Probability of a collision
0 Practically impossible
Possible ID space 8.51e+37

Computed via the Birthday Paradox: P ≈ 1 − exp(−n·(n−1) / (2·A^L)). A = alphabet size, L = length, n = number of IDs.

Runs locally in your browser Every ID is generated in your browser. No server, no tracking, no cookie.

Comment ça marche

  1. 01

    Text oder Code einfügen

    Füge deinen Inhalt in das Eingabefeld ein oder tippe direkt.

  2. 02

    Automatische Verarbeitung

    Das Tool verarbeitet den Inhalt sofort und zeigt das Ergebnis.

  3. 03

    Ergebnis kopieren

    Kopiere das Ergebnis mit einem Klick in die Zwischenablage.

Confidentialité

Alle Berechnungen laufen direkt in deinem Browser. Keine Daten werden auf Server übertragen.

Génère des identifiants courts et URL-friendly grâce au générateur de hasard cryptographique du navigateur. Par défaut 21 caractères dans l'alphabet URL-safe, via le curseur entre 8 et 64. Cinq recettes en un clic pour URL slug, clé API, code de coupon, ID de session et suffixe de fichier.

01 — Mode d’emploi

Comment utiliser cet outil ?

  1. Choisissez une recette en haut — ou réglez longueur et alphabet manuellement.
  2. Fixez la quantité : 1 pour une seule ID, 10/100/1 000/10 000 pour la génération en lot.
  3. Cliquez sur « Générer » — l'ID apparaît tout de suite. Avec « Copier » dans le presse-papiers ou « Enregistrer en CSV » pour l'export.
  4. Dans l'accordéon Collisions, choisissez le volume attendu — la probabilité de doublon se calcule en direct selon le paradoxe des anniversaires.
  5. Pour des codes lisibles à voix haute ou imprimables, choisissez l'alphabet « Sans confondables » — le badge Read-Aloud confirme le choix.

Qu’est-ce qu’un Nano ID ?

Un Nano ID est un identifiant compact et URL-friendly — l’alternative plus courte au classique UUID. Par défaut 21 caractères dans l’alphabet URL-safe A-Z a-z 0-9 _ - (l’ensemble non réservé de l’URL selon RFC 3986). Avec 64 caractères possibles par position, 21 caractères donnent environ 126 bits d’entropie — comparable à un UUID v4 (122 bits), mais 15 caractères plus court et sans tirets.

Trois propriétés distinguent l’outil de la concurrence analysée :

  • Calculateur de collisions intégré : tout en réglant longueur et alphabet, l’accordéon intégré indique en direct selon le paradoxe des anniversaires la probabilité d’un doublon pour 1 000 / 100 000 / 1 M / 1 Md / 1 billion d’IDs tirées. Les outils concurrents fournissent soit un générateur pur (sans maths) soit un calculateur pur (sans générateur) — nous combinons les deux.
  • Recettes par cas d’usage : cinq presets en un clic pour URL slug, clé API, code de coupon, ID de session et suffixe de fichier. Chaque recette fixe longueur ET alphabet selon le choix usuel du cas — fini la douleur « quelle longueur me faut-il ? ».
  • Mode sans confondables + badge Read-Aloud : l’alphabet spécial « sans 0/O/o/1/l/I » convient aux codes imprimés ou lus à voix haute (coupons, OCR, tickets de support). Un badge confirme aussitôt la « lisibilité à voix haute ».

L’utilisation suit le principe du minimalisme raffiné : badge crypto en haut, cinq cartes par cas d’usage, longueur + quantité sur deux colonnes, sélecteur d’alphabet, gros bouton « Générer », sortie en chasse fixe, accordéon de collisions. Pas de tracking, pas de compte, pas de serveur.

Comment fonctionne la source de hasard cryptographique ?

L’outil utilise crypto.getRandomValues() — l’API Web Crypto du W3C, disponible dans tous les navigateurs modernes depuis 2014. Elle fournit des octets imprévisibles depuis le pool d’entropie du système : Linux utilise /dev/urandom, macOS un service random analogue, Windows son API crypto système. Ces sources sont alimentées en continu par des événements matériels (frappe au clavier, mouvement de souris, gigue réseau, latence disque).

À partir de la valeur brute 32 bits, un tirage avec rejet fournit un index dans l’alphabet choisi — sans biais modulo, qui dans byte % alphabetSize pour des tailles d’alphabet non puissance de 2 créerait une distribution inégale. C’est le même algorithme que celui de la bibliothèque Nano ID d’origine : masquer avec le plus petit 2^k − 1 ≥ alphabetSize − 1, rejeter les valeurs ≥ alphabetSize, tirer un nouvel octet.

Le badge crypto navigateur en haut indique activement quelle source est utilisée. « Crypto navigateur · qualité cryptographique » si crypto.getRandomValues() est disponible, « Pseudo-aléatoire · basé sur les maths » dans le rare repli (très anciens navigateurs, WebViews embarqués exotiques). La qualité du RNG reste ainsi visible — les services concurrents ne le font pas.

Comment le calculateur de collisions détermine-t-il la probabilité ?

Le calculateur utilise la forme fermée du paradoxe des anniversaires :

P(collision) ≈ 1 − exp( −n·(n−1) / (2 · S) )

avec n = nombre d’IDs tirées et S = taille d’alphabet à la puissance longueur. Le calcul tourne en espace logarithmique, pour qu’aucun nombre ne déborde même à n = 10^12.

Quelques ordres de grandeur pour l’intuition :

LongueurAlphabetNombre d’IDsProbabilité de doublon
864 (URL-safe)1 M≈ 0,18 %
836 (alphanum. min.)1 M≈ 18 %
856 (sans confondables)1 M≈ 0,55 %
1264 (URL-safe)1 Md≈ 7 × 10^-6
1664 (URL-safe)1 billion≈ 5 × 10^-9
2164 (URL-safe)1 billion≈ 3 × 10^-15
3264 (URL-safe)1 billion< 10^-37

Règle empirique : avec des IDs courtes (≤ 12 caractères), il FAUT connaître le volume ; à 21 caractères, un doublon est pratiquement impossible même à 1 billion d’IDs tirées. Le calculateur affiche cinq niveaux qualitatifs — « Pratiquement impossible », « Très rare », « Rare », « Possible », « Probable » — avec badge couleur, pour voir d’un coup si votre choix tient.

Quelles recettes par cas d’usage ?

Cinq presets couvrent les scénarios les plus fréquents. Chacun fixe longueur ET alphabet en un clic :

Slug d’URL (8 caractères, URL-safe). Idéal comme identifiant court dans une URL, lisible à la main et sans souci d’encodage. Exemple : kittokit.com/p/aB3xK_7q. Espace 64^8 ≈ 2,8 × 10^14 — suffit pour tout raccourcisseur de lien et pour des applications pastebin jusqu’à environ 100 millions d’entrées. Pour des URLs à très haut volume (> 1 Md), plutôt 10 à 12 caractères.

Clé API (32 caractères, alphanumérique sans symboles). Sans _ ni - pour une compatibilité maximale avec les en-têtes de jeton et les outils qui interprètent parfois les symboles comme séparateurs. Espace 62^32 ≈ 2,3 × 10^57 — sans aucun risque de collision pour tout volume réaliste.

Code de coupon (8 caractères, sans confondables). Spécifiquement pour les codes imprimés sur bons ou étiquettes. Retire 0/O/o/1/l/I — il reste 56 caractères, espace 56^8 ≈ 9,7 × 10^13. Jusqu’à 1 million de codes, la probabilité de doublon vaut environ 0,55 %, ce qui n’est pas critique aux tirages de coupons (les doublons sont rattrapés en caisse).

ID de session (21 caractères, URL-safe). Le défaut standard Nano ID — la valeur « taille unique » la plus sûre. Espace 64^21 ≈ 4 × 10^37, en entropie équivalent à un UUID. Sûr pour les sessions web, les IDs utilisateur persistantes et les valeurs de cookies. Convient aussi comme remplacement direct d’un UUID v4 quand la longueur de l’URL pèse.

Suffixe de fichier (6 caractères, minuscules + chiffres). Pour des noms de fichier temporaires comme report-x7k2qm.pdf ou des hashs d’upload. Les minuscules collent à la plupart des conventions de systèmes de fichiers (Windows insensible à la casse, Linux sensible — le choix minuscules évite les deux pièges). Espace 36^6 ≈ 2,2 × 10^9 — sans souci jusqu’à 10 000 uploads parallèles par utilisateur.

Quelles sont les limites de l’outil ?

L’outil ne fait volontairement pas :

  • Pas de génération d’UUID : pour cela, voyez le générateur UUID séparé — une séparation claire évite la surcharge UI. Pour des UUID v4 ou v7, c’est là-bas.
  • Pas d’IDs séquentielles (ULID, KSUID, Snowflake) : ce sont des identifiants temporels avec d’autres propriétés (triables lexicographiquement, timestamp embarqué). Si le volume de recherche le justifie, un outil sœur arrivera — d’ici là, lacune assumée.
  • Pas de streaming au-delà de 10 000 IDs : pour des volumes plus élevés, le thread principal serait bloqué. 10 000 est le point d’équilibre entre « utile pour générer un import CSV » et « reste responsive ». Pour de vrais besoins de très haut volume, utiliser une bibliothèque côté serveur.

Statistiquement : crypto.getRandomValues() est, pour tous les cas standard, uniformément distribué et auditable. Les éditeurs de navigateurs testent l’implémentation contre la NIST SP 800-22 Test Suite — 16 tests d’hypothèses statistiques que toutes les machines virtuelles JavaScript modernes passent.

Pour des applications qui exigent du vrai hasard physique — génération de clés pour systèmes de haute sécurité, études scientifiques avec randomisation en double aveugle — une source RNG matérielle est la référence. La crypto navigateur couvre 99 % des cas d’usage d’IDs réalistes, mais ce n’est pas explicitement un générateur de hasard matériel.

Dernière mise à jour :

Vous pourriez aussi aimer