DevToolPal
ES

Generador de ULID

Genera ULID: identificadores únicos de 26 caracteres, ordenables por tiempo y con aleatoriedad segura, en lotes de hasta 1000.

Se ejecuta en local, nunca se sube

Opciones

ULID

0 caracteres · 0 B

Qué hace

Esta herramienta genera ULID en tu navegador. Un ULID es un identificador de 128 bits, como un UUID, pero se escribe con 26 caracteres y se ordena por el momento en que se creó. Eso hace que los ULID encajen bien como claves primarias de bases de datos, ID de eventos y logs, nombres de archivo y cualquier cosa que quieras listar por orden de creación sin una columna de marca de tiempo aparte.

Un ULID tiene dos partes:

  • Marca de tiempo (primeros 10 caracteres): milisegundos desde la época Unix, 48 bits. Llega hasta el año 10889.
  • Aleatoriedad (últimos 16 caracteres): 80 bits del generador criptográfico de números aleatorios del navegador.

Los ULID usan el alfabeto Base32 de Crockford 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Omite I, L, O y U para que los ID sean fáciles de leer en voz alta y difíciles de teclear mal, y no contiene caracteres que haya que escapar en las URL.

Cómo se usa

  1. Elige cuántos ID necesitas, de 1 a 1000.
  2. Activa Monotónico si los ID deben mantener su orden aunque se creen varios en el mismo milisegundo. La parte aleatoria se incrementa entonces en uno para cada ID nuevo.
  3. Activa Minúsculas si tu sistema guarda los ID en minúsculas. Los ULID no distinguen mayúsculas de minúsculas, y la forma canónica es en mayúsculas.
  4. Copia la lista o descárgala como archivo de texto. Pulsa generar de nuevo para obtener un lote nuevo.

Ejemplo

01ARZ3NDEKTSV4RRFFQ69G5FAV

Aquí 01ARZ3NDEK es la marca de tiempo 1469922850259 (2016-07-30 23:54:10.259 UTC) y TSV4RRFFQ69G5FAV es la parte aleatoria. Dos ULID creados con un segundo de diferencia comparten sus primeros caracteres, por eso una simple ordenación de cadenas los pone en orden temporal.

ULID frente a UUID

Un UUID v4 aleatorio reparte las filas nuevas por todo un índice B-tree, lo que ralentiza las inserciones en tablas grandes. Los ULID son mayormente crecientes, así que las filas nuevas caen al final del índice, como ocurre con un entero autoincremental, y aun así son únicos entre máquinas sin necesidad de coordinación. La contrapartida es que un ULID revela aproximadamente cuándo se creó. Si eso importa, usa un UUID v4.

Preguntas frecuentes

› ¿Qué es un ULID?

Un ULID (Universally Unique Lexicographically Sortable Identifier) es un ID de 128 bits escrito como 26 caracteres en Base32 de Crockford. Los primeros 10 caracteres codifican una marca de tiempo en milisegundos y los últimos 16 son aleatorios.

› ¿ULID o UUID: cuál debo usar?

Usa un ULID cuando quieras ID que se ordenen por fecha de creación, por ejemplo como claves de base de datos o ID de logs. Usa UUID v4 cuando el ID no deba revelar cuándo se creó. UUID v7 es una alternativa estándar que también está ordenada por tiempo.

› ¿Qué hace el modo monotónico?

Los ID creados en el mismo milisegundo normalmente reciben partes aleatorias independientes, así que su orden dentro de ese milisegundo es aleatorio. En el modo monotónico, en cambio, la parte aleatoria se incrementa en uno, de modo que cada ID del lote se ordena estrictamente después del anterior.

› ¿Los ID se generan de forma segura?

Sí. La parte aleatoria procede del generador criptográfico de números aleatorios del navegador, y no se envía nada a ningún servidor.