Usa el Generador de NanoIDs gratuito abajo: tus datos nunca salen de tu navegador, todo el trabajo ocurre en tu dispositivo y no se sube a ningún servidor.
NanoID: el identificador diminuto que sustituyó a los UUID en muchas apps
NanoID es una librerÃa pequeña para generar identificadores únicos, creada como alternativa compacta a los UUID. Un NanoID por defecto tiene 21 caracteres y se ve como “V1StGXR8_Z5jdHi6B-myT”. Usa un alfabeto seguro para URLs de 64 caracteres: letras mayúsculas y minúsculas, dÃgitos, guion y guion bajo. Como el alfabeto es mayor que el hexadecimal, 21 caracteres llevan unos 126 bits de aleatoriedad, más o menos lo mismo que un UUID, en una cadena 15 caracteres más corta. Esa compacidad es la razón de que los NanoID aparezcan en URLs, nombres de archivo y códigos cortos en todas partes.
El diseño es deliberadamente mÃnimo. No hay marca de tiempo, ni dÃgito de versión, ni estructura en absoluto: solo caracteres aleatorios de un alfabeto. Esa simplicidad es el punto. NanoID hace un trabajo, generar identificadores aleatorios, y lo hace con poco código y un algoritmo rápido. Se hizo popular en el ecosistema JavaScript, donde su tamaño diminuto importaba para los paquetes web, y desde entonces se ha adaptado a muchos otros lenguajes.
Tamaño, alfabeto y las matemáticas de colisión
La seguridad de un identificador aleatorio depende de dos números: cuántos caracteres tiene, y cuántos caracteres contiene el alfabeto. Multiplica la longitud por el logaritmo del tamaño del alfabeto y obtienes la entropÃa en bits. Un identificador de 21 caracteres de un alfabeto de 64 caracteres tiene unos 126 bits. Un identificador de 10 caracteres solo con dÃgitos tiene unos 33 bits, lo que es demasiado poco para nada público, porque las colisiones se vuelven probables después de decenas de miles de identificadores. Esta herramienta muestra la entropÃa de cada identificador que genera, para que veas la compensación en lugar de adivinarla.
La paradoja del cumpleaños rige las colisiones: con N identificadores posibles, las colisiones se vuelven probables después de aproximadamente la raÃz cuadrada de N identificadores. Para 126 bits, eso es alrededor de 2 elevado a 63 identificadores, un número que ningún sistema real alcanza. Para 33 bits, son unos 100.000 identificadores, que un sistema con tráfico puede alcanzar rápido. La lección es simple: para cualquier cosa expuesta al público o guardada a largo plazo, usa al menos 21 caracteres del alfabeto completo. Los identificadores más cortos sirven para usos temporales y de poco volumen, pero no para identificadores públicos permanentes.
Elegir un alfabeto
El alfabeto por defecto seguro para URLs es la mejor opción general. Funciona en URLs, nombres de archivo y la mayorÃa de las bases de datos sin necesidad de escapar caracteres. El alfabeto solo con dÃgitos sirve cuando las personas deben teclear el identificador, por ejemplo un código corto leÃdo por teléfono, pero necesita un identificador más largo para alcanzar la misma entropÃa. Solo minúsculas sirve cuando un sistema obliga a minúsculas. El hexadecimal sirve cuando necesitas compatibilidad con herramientas que esperan cadenas hexadecimales. Elijas lo que elijas, mantén la longitud generosa: un identificador más largo no cuesta casi nada y compra un gran margen de seguridad.
Un punto sutil: generar identificadores con sesgo de módulo puede hacer que algunos caracteres sean ligeramente más probables que otros. Una implementación cuidadosa usa muestreo por rechazo, descartando los bytes aleatorios que sesgarÃan la distribución, y esta herramienta hace exactamente eso. La diferencia es mÃnima para alfabetos grandes, pero la corrección aquà no cuesta nada, asà que no hay razón para saltársela.
Dónde funcionan mejor los NanoID
Los NanoID son ideales para identificadores cortos visibles al público: identificadores de comentarios, nombres de archivo subidos, enlaces para compartir, códigos de invitación y tokens temporales. También sirven como claves de base de datos en sistemas que aceptan claves de texto. No son una buena opción cuando necesitas ordenación, porque los identificadores aleatorios se dispersan por el Ãndice; para eso, usa ULID. Tampoco son tokens secretos: un NanoID es impredecible, pero no debe ser la única protección de datos sensibles, y debe combinarse con autenticación adecuada.
Si estás migrando desde UUID, la diferencia práctica es sobre todo cosmética: cadenas más cortas, sin guiones, sin dÃgitos de versión. Las garantÃas de unicidad son comparables con el tamaño por defecto. Lo principal que debes comprobar es si tu almacenamiento y tus herramientas aceptan el alfabeto que elijas, sobre todo el guion y el guion bajo del conjunto por defecto.
Preguntas frecuentes
¿Es NanoID mejor que UUID? Para compacidad y facilidad en URLs, sÃ. Para estandarización y herramientas, UUID sigue ganando. ¿Qué longitud deben tener mis identificadores? Veintiún caracteres del alfabeto por defecto es el estándar y es seguro para casi todos los usos. ¿Se generan los identificadores en local? SÃ. Esta herramienta usa el generador aleatorio criptográfico de tu navegador, y nada se envÃa a ningún servidor.
