Generador de UUID: v4, v7, ULID y NanoID, con decodificador
Genera en lote UUID v4 o v7 ordenados por tiempo, ULID y NanoID, o pega un ID para ver su versión y la marca de tiempo que contiene.
Validar y decodificar un ID
UUID versión 7 (ordenado por tiempo Unix)
| Canónico | 017f22e2-79b0-7cc3-98c4-dc0c0c07398f |
|---|---|
| Versión | 7: ordenado por tiempo Unix |
| Variante | RFC 9562 / RFC 4122 |
| rand_a (12 bits) | cc3 |
| Marca de tiempo | 2022-02-22T19:22:22.000Z Unix ms 1645557742000 |
Los ID se generan en tu navegador con crypto.getRandomValues. No se envía ni se guarda nada. Ver todas las herramientas gratis.
¿Encontraste un problema o algo que podría mejorar? Leemos todos los mensajes y lo arreglamos rápido.
Este generador de UUID crea UUID aleatorios de la versión 4, UUID de la versión 7 ordenados por tiempo según el RFC 9562, ULID y NanoID, de uno en uno o hasta 10 000 en un lote que puedes copiar o descargar. Cada bit aleatorio procede de crypto.getRandomValues, el generador criptográfico del navegador, y no de Math.random. El decodificador de abajo acepta cualquier UUID, GUID o ULID y te dice su versión y su variante y, en el caso de v1, v6, v7 y ULID, el momento en que se creó.
Los UUID v7 y los ULID de un mismo lote son estrictamente crecientes, incluso cuando miles comparten el mismo milisegundo, así que se ordenan por orden de creación, como deben hacerlo las claves de una base de datos. No se ofrece la versión 1: un navegador no tiene acceso a una dirección MAC ni a una secuencia de reloj persistente, así que un UUID v1 creado en una página web solo imitaría el formato. Si necesitas UUID v1 o UUID v3/v5 basados en nombres, genéralos con la biblioteca de UUID de tu lenguaje.
Cómo usarla
- Elige el tipo: v4 para un ID aleatorio de uso general, v7 para claves primarias de bases de datos, ULID o NanoID si tu stack los usa.
- Indica cuántos necesitas, hasta 10 000, y pulsa Generar (o Enter en el campo de cantidad).
- Elige un formato: en mayúsculas, sin guiones o entre llaves para el registro de Windows y entornos .NET.
- Cópialos todos o descárgalos como archivo de texto con un ID por línea, o como array JSON.
- Para examinar un ID existente, pégalo en el decodificador y verás su versión, su variante y la marca de tiempo que contenga.
Preguntas frecuentes
¿Qué diferencia hay entre los UUID v4 y v7?
Un UUID v4 son 122 bits aleatorios sin estructura. Un UUID v7 pone al principio una marca de tiempo Unix de 48 bits en milisegundos, seguida de 74 bits aleatorios, así que los valores v7 se ordenan por momento de creación. Ese orden hace que v7 sea mucho más adecuado como clave primaria de una base de datos: las filas nuevas van al final del índice en lugar de a posiciones aleatorias, lo que reduce las divisiones de páginas y mantiene rápidas las inserciones. La contrapartida es que un ID v7 revela cuándo se creó.
¿Pueden coincidir dos UUID?
En teoría sí; en la práctica no, siempre que procedan de una buena fuente aleatoria. Con 122 bits aleatorios, tendrías que generar unos 2.7 trillones (2.7 × 10^18) de UUID v4 para llegar a un 50 % de probabilidad de una sola colisión. Los duplicados reales vienen de errores: un generador aleatorio débil o mal inicializado, el estado copiado de una máquina virtual o código que reutiliza un valor.
¿Un GUID es lo mismo que un UUID?
Sí. GUID es el nombre que da Microsoft al mismo identificador de 128 bits, y los GUID modernos son UUID estándar (normalmente de la versión 4). Las únicas diferencias son de presentación: las herramientas de Windows suelen mostrar los GUID en mayúsculas y entre llaves, como {3F2504E0-4F89-41D3-9A0C-0305E82C3301}. Usa las opciones de mayúsculas y llaves para obtener esa forma.
¿Uso UUID v7 o ULID?
Ambos son de 128 bits, están ordenados por tiempo y llevan una marca de tiempo en milisegundos. UUID v7 encaja en cualquier sitio donde ya exista una columna o un tipo UUID, como el tipo uuid de PostgreSQL o la clase UUID de Java. ULID es más corto como texto (26 caracteres en lugar de 36) y no distingue mayúsculas de minúsculas, pero necesita su propia biblioteca y se guarda como texto o binario. Si tu base de datos y tu lenguaje ya trabajan con UUID, v7 es la opción más sencilla.
¿Qué longitud debe tener un NanoID?
Los 21 caracteres por defecto del alfabeto seguro para URL de 64 caracteres dan 126 bits de aleatoriedad, comparables a los 122 de UUID v4. Los ID más cortos están bien cuando el número de ID es pequeño y adivinar uno no tiene consecuencias, como en un enlace corto con limitación de solicitudes. El número de bits que aparece bajo el control de longitud te dice a qué renuncias; cada carácter de un alfabeto de 64 símbolos añade 6 bits.
¿Puedo saber cuándo se creó un UUID?
Solo en las versiones basadas en tiempo. Pega el ID en el decodificador: v7 y ULID guardan milisegundos Unix en sus primeros 48 bits, y v1 y v6 guardan intervalos de 100 nanosegundos desde el 15 de octubre de 1582. Un UUID v4 no contiene ninguna hora, solo bits aleatorios más los marcadores de versión y variante.
Cómo leer un UUID: versión y variante
Un UUID se escribe como 32 dígitos hexadecimales en grupos de 8-4-4-4-12. Dos posiciones lo identifican. El primer dígito del tercer grupo es la versión: en 0190a3c4-1b2c-7d3e-8f40-0123456789ab es 7. El primer dígito del cuarto grupo codifica la variante: 8, 9, a o b significan la estructura estándar del RFC 9562, que es la que usan hoy casi todos los UUID.
• v1: marca de tiempo gregoriana más la dirección MAC de la máquina que lo genera. Revela ambas cosas; apenas se usa en sistemas nuevos.
• v3 y v5: deterministas, derivados de un espacio de nombres y un nombre con MD5 (v3) o SHA-1 (v5). La misma entrada da siempre el mismo UUID.
• v4: aleatorio. El predeterminado en la mayoría de las bibliotecas.
• v6: v1 con la marca de tiempo reordenada para que se pueda ordenar; una vía de migración para quienes usan v1.
• v7: marca de tiempo Unix en milisegundos más bits aleatorios. La versión ordenada por tiempo recomendada para sistemas nuevos.
• v8: una estructura definida por el proveedor; solo están fijados los bits de versión y variante.
Por qué los UUID aleatorios ralentizan las bases de datos y qué soluciona v7
La mayoría de las bases de datos guardan la clave primaria en un índice de árbol B. Con claves secuenciales, cada fila nueva cae en la página más a la derecha del índice, que permanece en memoria. Con UUID v4 aleatorios, cada inserción cae en una página aleatoria; en cuanto el índice es mayor que la memoria, las inserciones empiezan a leer páginas del disco y a dividirlas, y el rendimiento de escritura cae. InnoDB de MySQL, que agrupa toda la tabla por la clave primaria, es el que más lo nota.
UUID v7 conserva las ventajas de los UUID (únicos globalmente, generables por cualquier cliente sin un viaje de ida y vuelta, seguros de exponer) y se comporta en el índice casi como una columna autoincremental. El RFC 9562, publicado en mayo de 2024, recomienda v7 frente a v1 y v6 para los nuevos ID basados en tiempo, y PostgreSQL 18 añadió una función uuidv7() integrada.
Guarda los UUID en un tipo nativo de 16 bytes (uuid en PostgreSQL, BINARY(16) en MySQL) en lugar de en una cadena de 36 caracteres, que más que duplica el tamaño del índice.
UUID, ULID y NanoID de un vistazo
• UUID v4: 36 caracteres, 122 bits aleatorios, compatible con todas las bibliotecas y bases de datos, no ordenable.
• UUID v7: 36 caracteres, 48 bits de tiempo en milisegundos más 74 bits aleatorios, ordenable, compatible allí donde lo sean los UUID.
• ULID: 26 caracteres en Base32 de Crockford, 48 bits de tiempo más 80 bits aleatorios, ordenable y sin distinción de mayúsculas, necesita una biblioteca.
• NanoID: 21 caracteres por defecto, cualquier alfabeto y longitud, seguro para URL y compacto, sin marca de tiempo y sin forma binaria estándar.
Herramientas gratis relacionadas
- Conversor de timestamp Unix — Convierte segundos, milisegundos, microsegundos o nanosegundos epoch en fechas de cualquier zona horaria, y al revés. Reloj en vivo, modo por lotes y fragmentos de código.
- Generador de contraseñas — Genera una contraseña aleatoria segura, una frase de contraseña fácil de recordar o un PIN. Funciona por completo en tu navegador: no se envía ni se guarda nada.
- Generador de hash — Calcula el hash de textos o archivos con MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC32, verifica una suma de comprobación o calcula un HMAC. Los archivos nunca salen de tu dispositivo.
- Formateador JSON — Formatea, minifica y valida JSON, con los errores de análisis localizados por línea y columna. En tu navegador, sin subir nada.