Mcatorce Suite
← Volver al blog

ULID vs UUID vs NanoID: ¿Qué Identificador Deberías Usar?

Compara ULID, UUID y NanoID por longitud, ordenación y aleatoriedad, y descubre cuál encaja con claves de base de datos, URLs y sistemas distribuidos.

Prueba la herramienta: Generador de ULID y NanoID

Las aplicaciones necesitan identificadores que se puedan crear en cualquier lugar sin preguntar a una base de datos central. Las tres opciones más populares hoy son UUID, ULID y NanoID, y cada una hace concesiones distintas.

UUID

Un UUID es un valor de 128 bits que se suele escribir con 36 caracteres y guiones. La versión 4 es casi totalmente aleatoria, con unos 122 bits aleatorios, así que las colisiones son prácticamente imposibles. Su punto débil es que no tiene orden. Los UUID de la versión 7, más nuevos, ponen primero una marca de tiempo y se ordenan por fecha de creación, lo que lo arregla en los sistemas que los admiten.

ULID

Un ULID también tiene 128 bits, pero se escribe con 26 caracteres en Base32 de Crockford, que evita letras confusas. Los primeros 48 bits son una marca de tiempo en milisegundos y los 80 restantes son aleatorios. Como la marca de tiempo va primero, los ULID se ordenan por creación incluso como cadenas de texto, y la marca de tiempo se puede leer a partir del identificador.

NanoID

Un NanoID es una cadena aleatoria tomada de un alfabeto que tú eliges. Por defecto son 21 caracteres de un alfabeto de 64 símbolos seguro para URLs, lo que aporta unos 126 bits de aleatoriedad, parecido a un UUID v4 pero más corto. No tiene marca de tiempo ni orden. Encaja bien en enlaces cortos, identificadores públicos y tokens.

Comparación rápida

  • Ordenable por tiempo: ULID y UUID v7 sí, UUID v4 y NanoID no.
  • Longitud: NanoID 21, ULID 26, UUID 36 caracteres.
  • Alfabeto personalizable: solo NanoID.
  • Tipo nativo en bases de datos: UUID lo admiten muchas bases de datos, ULID y NanoID se guardan como texto o binario.

¿Cuál elegir?

Usa un ID ordenado por tiempo como ULID para claves primarias y registros de eventos. Usa NanoID para URLs públicas y códigos para compartir, donde importa que sea corto e inadivinable. Usa UUID cuando una biblioteca, un estándar o una columna de base de datos ya lo esperan.

Preguntas frecuentes

¿Son secretos estos IDs? No. Trátalos como identificadores, no como autorización. Un ULID revela cuándo se creó.

¿Es seguro generarlos en el navegador? El generador usa la fuente aleatoria criptográficamente segura del navegador y no se envía nada a un servidor.