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.

Qué es Nano ID

Nano ID es un procedimiento que genera identificadores aleatorios cortos compuestos únicamente por caracteres seguros para URL. Por omisión combina 21 caracteres tomados de un alfabeto de 64 (A-Za-z0-9_-), lo que lo mantiene más corto que un UUID conservando una aleatoriedad de sobra para el uso práctico. Esta herramienta le deja fijar libremente el alfabeto (por omisión, alfanumérico, minúsculas, mayúsculas, dígitos o hexadecimal), la longitud y la cantidad, y crear identificadores en lote.

La generación se realiza por entero dentro de su navegador mediante los números aleatorios criptográficamente seguros de la API Web Crypto, así que nunca se envía nada a los servidores de toolbase.cc. No tiene que llevar ningún secreto a un formulario y puede copiar los identificadores tal cual para emplearlos como slugs de URL, datos de prueba, nombres de archivo y demás.

Cómo usar Nano ID

  1. Elija el alfabeto Escoja el alfabeto que convenga a su uso entre por omisión (los 64 caracteres seguros para URL), alfanumérico, solo minúsculas, solo mayúsculas, solo dígitos y hexadecimal.
  2. Fije la longitud Indique el número de caracteres de los identificadores. Cuanto más los acorte, más sube la probabilidad de colisión, así que tenga presente el equilibrio propio de su uso.
  3. Indique cuántos generar Introduzca cuántos identificadores quiere de una vez. Si necesita varios —para crear datos de prueba en lote, por ejemplo—, los precisa todos aquí.
  4. Pulse el botón de generar Al pulsar, los identificadores acordes con sus ajustes se crean al instante dentro del navegador y se presentan en lista.
  5. Cópielos Cada identificador tiene su propio botón de copia; si quiere el conjunto, copiar todo los toma juntos.

Consejos para aprovecharla mejor

  • 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.

Cuándo resulta útil Nano ID

Generar slugs de URL

Como identificador único en la ruta de una URL acortada o de un enlace de compartición, una cadena segura para URL, sin símbolos incómodos, se emplea exactamente tal cual.

Cargar datos de prueba o simulados

Como claves primarias o identificadores de los registros de muestra que carga en una base durante el desarrollo, genera tantos como haga falta de una sola vez.

Emitir identificadores de sesión y de petición

Como identificador provisional para el seguimiento de registros o la distinción de peticiones de API, le proporciona una cadena corta y manejable.

Numerar nombres de archivo sin colisión

Cómodo cuando quiere adjuntar un identificador aleatorio al nombre de guardado de un archivo subido y evitar que archivos homónimos se sobrescriban.

Emitir claves de API y códigos de referencia sencillos

No para credenciales de producción, pero fácilmente a mano para numerar los códigos de referencia cortos de herramientas internas y entornos de prueba.

El vocabulario empleado aquí

Nano ID
Un procedimiento de generación de identificadores aleatorios cortos compuestos únicamente por caracteres seguros para URL. Por omisión asegura una aleatoriedad alta con 21 caracteres de un alfabeto de 64.
UUID
Un identificador de 128 bits normalizado por una RFC. La notación hexadecimal de 36 caracteres separada por guiones se emplea ampliamente como su forma estándar.
ULID
Un identificador de 26 caracteres que lleva al principio una marca de tiempo en milisegundos. A diferencia de Nano ID y UUID, se ordena como cadena en el orden de generación.
API Web Crypto
La interfaz de trabajo criptográfico que los navegadores proporcionan de serie. Sabe generar números aleatorios difíciles de prever, y en ello se apoya la seguridad de los identificadores.
Números aleatorios criptográficamente seguros
Números aleatorios concebidos para que el valor siguiente no pueda predecirse estadísticamente. Rebajan el riesgo de que un identificador sea adivinado o suplantado.
Probabilidad de colisión
La probabilidad de que dos generaciones distintas produzcan por azar el mismo identificador. Cuantos más caracteres y más amplio el alfabeto, más disminuye.
Problema del cumpleaños
El fenómeno según el cual cuantas más personas hay en un grupo, más probable es que dos compartan cumpleaños. Sirve para la aproximación que estima la probabilidad de colisión de identificadores.

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.
Tool-kun

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.