Saltar al contenido

Generador Gratuito de Nano ID - Identificadores Únicos Seguros y Compatibles con URL en Línea

¡Genere Nano IDs seguros al instante! Herramienta en línea gratuita que crea identificadores únicos compactos y compatibles con URL, 42% más cortos que UUID. Perfecto para bases de datos, API, tokens y sistemas.

La longitud del Nano ID generado (1-100 caracteres)

Seleccione el conjunto de caracteres para su Nano ID

Nano ID Generado

Introduce un valor para ver los resultados

Visualización

Calculadora de carga...
📚

Documentación

Un generador de Nano ID crea una cadena corta y aleatoria de caracteres llamada Nano ID. Los Nano ID funcionan como identificadores únicos para elementos como registros de bases de datos, URL y tokens de API, y es extremadamente improbable que dos ID generados coincidan alguna vez.

¿Qué es un Nano ID?

Un Nano ID es una cadena generada aleatoriamente que se utiliza para etiquetar algo y distinguirlo de cualquier otro elemento. El desarrollador de software Andrey Sitnik creó el formato en 2017 como una alternativa más pequeña al UUID (identificador universalmente único), un identificador de 36 caracteres ampliamente utilizado en informática. Un Nano ID predeterminado tiene 21 caracteres, frente a los 36 de un UUID, lo que supone una reducción aproximada del 42 %.

Cómo generar un Nano ID con esta herramienta

El generador de esta página crea un Nano ID a partir de dos configuraciones.

  1. Longitud: un número entero entre 1 y 100. El valor predeterminado es 21.
  2. Conjunto de caracteres: el grupo de caracteres a partir del cual se crea el ID. El valor predeterminado es alfanumérico.

Introduzca una longitud, elija un conjunto de caracteres y pulse «Generar» para crear un ID. Pulse «Copiar» para copiarlo o «Restablecer» para volver a una longitud de 21 y al conjunto alfanumérico. También aparece automáticamente un ID nuevo cada vez que cambia la longitud o el conjunto de caracteres. Debajo de los botones, la herramienta muestra cada carácter del ID como un bloque de color: azul para una letra mayúscula, verde para una letra minúscula, naranja para un dígito y gris para un signo de puntuación.

Si la longitud no es un número entero entre 1 y 100, la herramienta muestra el mensaje «La longitud debe ser un número entero entre 1 y 100» y no genera ningún ID.

Conjuntos de caracteres disponibles

La herramienta ofrece siete conjuntos de caracteres fijos. No acepta un alfabeto personalizado introducido por el usuario. El conjunto «Con símbolos» añade estos 26 signos de puntuación a los caracteres alfanuméricos: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

Conjunto de caracteresCaracteres utilizadosTamaño del alfabeto
Alfanumérico (predeterminado)A-Z, a-z, 0–962
Seguro para URLA-Z, a-z, 0-9, -, _64
Numérico0–910
AlfabéticoA-Z, a-z52
Minúsculasa-z26
MayúsculasA-Z26
Con símbolosA-Z, a-z, 0–9 y 26 signos de puntuación88

El conjunto alfanumérico está seleccionado de forma predeterminada. Excluye el guion y el guion bajo utilizados en el conjunto seguro para URL, aunque las letras y los dígitos por sí solos ya se pueden colocar directamente en una URL de forma segura.

Fórmula del Nano ID

Un Nano ID se crea seleccionando aleatoriamente un número fijo de caracteres de un alfabeto, uno a uno, mediante un generador de números aleatorios criptográficamente seguro. Se trata de un generador diseñado para que su salida no pueda predecirse de antemano.

1id = random(alphabet, size)
2

Con la configuración predeterminada, alphabet tiene 62 caracteres y size es 21.

Ejemplo resuelto

Con el alfabeto alfanumérico predeterminado y una longitud de 21, un ID generado posible es:

1K7pQ2mZxT9vY4nR8jH3wL
2

Cada carácter se selecciona de forma independiente entre las 62 letras y dígitos, por lo que ejecutar el generador dos veces casi nunca producirá la misma cadena.

Cómo calcular la probabilidad de colisión

Como un Nano ID se elige al azar, es posible, aunque muy poco probable, que dos ID generados coincidan. Esto se denomina colisión. La probabilidad de que ocurra al menos una colisión después de generar k ID sigue la misma formulación matemática que el «problema del cumpleaños»:

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Aquí, n es el número de ID posibles: el tamaño del alfabeto elevado a la longitud del ID, o n = alphabet_size^length.

Ejemplo resuelto

Para la configuración predeterminada, con un alfabeto de 62 caracteres y una longitud de 21:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Al resolver la fórmula para una probabilidad de colisión del 1 %, se obtiene:

1k ≈ 9.4 × 10^17 IDs
2

Esto significa que deben generarse aproximadamente 940 cuatrillones de ID antes de que exista siquiera una probabilidad del 1 % de que dos coincidan. Generando un millón de ID por segundo, alcanzar esa cantidad llevaría unos 29.700 años.

Cambiar al alfabeto seguro para URL de 64 caracteres aumenta ligeramente la cantidad, hasta unos 1,3 × 10^18 ID para el mismo riesgo del 1 %, porque el alfabeto más grande deja más ID posibles entre los que elegir.

Comparación del Nano ID con otros identificadores

TipoLongitudNotas
Nano ID21 caracteres, ajustableAleatorio, compacto y no ordenable por tiempo
UUID36 caracteresFormato estándar, ampliamente compatible y con guiones
ULID26 caracteresOrdenable por fecha de creación
KSUID27 caracteresOrdenable por fecha de creación e incluye una marca de tiempo
Entero autoincrementalVaríaSimple y secuencial, pero predecible y difícil de coordinar entre bases de datos independientes

Preguntas frecuentes

¿Cuál es la longitud y el conjunto de caracteres predeterminados de un Nano ID?

El valor predeterminado es 21 caracteres del conjunto de caracteres alfanumérico: A-Z, a-z, 0-9, que tiene 62 caracteres en total.

¿Admite esta herramienta un alfabeto personalizado?

No. Ofrece siete conjuntos de caracteres fijos: alfanumérico, seguro para URL, numérico, alfabético, minúsculas, mayúsculas y «Con símbolos».

¿En qué se diferencia un Nano ID de un UUID?

Un Nano ID es más corto. El valor predeterminado es de 21 caracteres, frente a los 36 caracteres de un UUID, aproximadamente un 42 % menos. Ambos se generan aleatoriamente y no son secuenciales.

¿Se puede ordenar un Nano ID por la hora de creación?

No. Los Nano ID son completamente aleatorios, por lo que no contienen información sobre cuándo se generaron. Formatos como ULID o KSUID están diseñados, en cambio, para poder ordenarse por tiempo.

¿Es seguro utilizar un Nano ID como clave primaria de una base de datos?

Sí. Debe almacenarse en una columna de texto o cadena, no en una columna numérica, y contar con un índice único para acelerar las búsquedas.

¿Cuántos Nano ID posibles existen?

Depende de la longitud y del conjunto de caracteres elegidos. Con el alfabeto predeterminado de 62 caracteres y una longitud de 21, existen 62^21, aproximadamente 4,4 × 10^37, ID posibles.

Referencias

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Fundación Wikimedia, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.