Generador de Nano ID

Genera en tu navegador, de forma masiva, identificadores únicos, cortos y seguros para URL. Elige libremente el conjunto de caracteres (predeterminado, alfanumérico, minúsculas, mayúsculas, dígitos o hexadecimal) y la longitud; ideal cuando necesitas algo más corto que un UUID.

Comparación de formatos de ID

Formato Longitud Tamaño del alfabeto Ordenable por fecha de creación Descripción
Nano ID 21 caracteres por defecto (configurable de 1 a 64) 64 caracteres No (totalmente aleatorio) Un ID corto y aleatorio compuesto solo por caracteres seguros para URL. El alfabeto y la longitud se pueden configurar libremente.
UUID v4 36 caracteres (incluye 4 guiones) 16 caracteres (hexadecimal) No (totalmente aleatorio) Un identificador de 128 bits estandarizado en la RFC 9562. La notación hexadecimal separada por guiones es el formato estándar.
ULID 26 caracteres 32 caracteres (Base32) Sí (los primeros 10 caracteres son una marca de tiempo) Comienza con una marca de tiempo de precisión de milisegundos, por lo que los ID pueden ordenarse como cadenas según el orden de creación.

Consejos

  • Nano ID se genera con aleatoriedad criptográficamente segura mediante la Web Crypto API y se procesa por completo en tu navegador: nada se envía a los servidores de toolbase.cc.
  • El alfabeto predeterminado de 64 caracteres (A-Za-z0-9_-) no contiene símbolos ni espacios, por lo que es seguro usarlo directamente en rutas de URL o nombres de archivo.
  • Limitar el alfabeto a solo dígitos o hexadecimal permite generar ID que coincidan con formatos de sistemas existentes (por ejemplo, números de pedido que son solo dígitos).
  • Cuanto más corto es el ID, mayor es la probabilidad de colisión. Los sistemas que emiten muchos ID deberían mantenerse cerca de los 21 caracteres predeterminados, mientras que para pequeños conjuntos de prueba pueden bastar de 8 a 10.
  • Aumenta la cantidad y usa "Copiar todo" para generar rápidamente datos de prueba o datos iniciales (seed) en masa.

Preguntas frecuentes

Si quieres un ID corto que puedas usar directamente en una URL o en un nombre de archivo, Nano ID es una buena opción. Si necesitas un formato estandarizado por una RFC, o interoperabilidad con otros sistemas, UUID (especialmente v4) es la opción más segura.

Con los 21 caracteres predeterminados y un alfabeto de 64 símbolos, obtienes unos 126 bits de aleatoriedad, algo insignificante en la práctica. Usando la aproximación del problema del cumpleaños, harían falta unos 1,09×10¹⁹ ID generados para que la probabilidad de colisión llegue al 50%.

Sí, pero al igual que UUID v4 es totalmente aleatorio, por lo que la inserción en un índice B-Tree es menos eficiente que con AUTO_INCREMENT. Si necesitas ID ordenables por orden de inserción, considera un formato con marca de tiempo inicial, como ULID.

Sí. Con la misma longitud, un alfabeto más pequeño (menos caracteres distintos) implica menos aleatoriedad y una mayor probabilidad de colisión. Para igualar la seguridad del alfabeto de 64 caracteres usando solo dígitos (10 caracteres), necesitarías un ID más largo.
ツールくん

A propósito — Por qué Nano ID puede ser más corto que un UUID

Nano ID es una biblioteca de JavaScript para generar ID, publicada en 2017 por Andrey Sitnik, el desarrollador de PostCSS. A pesar de no tener dependencias y ser diminuta (apenas unos cientos de bytes de código), su uso de aleatoriedad criptográficamente segura le dio reconocimiento, y hoy acumula decenas de millones de descargas semanales en npm.

La brevedad de un ID depende de cuántos caracteres distintos tiene su alfabeto. Un UUID usa solo dígitos hexadecimales (16 símbolos) para codificar 128 bits, lo que requiere 36 caracteres. Nano ID usa 64 símbolos, por lo que puede comprimir una cantidad comparable de aleatoriedad (126 bits por defecto) en solo 21 caracteres. La razón es que cada carácter aporta más información (log₂64 = 6 bits frente a log₂16 = 4 bits del hexadecimal).

La configuración predeterminada (21 caracteres, alfabeto de 64 símbolos) ofrece unos 126 bits de aleatoriedad, casi equivalente a los 122 bits de UUID v4. Usando la aproximación del problema del cumpleaños, se necesitarían generar unos 1,09×10¹⁹ ID antes de que la probabilidad de colisión alcance el 50%, así que en la práctica hay poco de qué preocuparse.