Generador y decodificador de KSUID

Genera KSUID —identificadores de 27 caracteres que se ordenan por fecha de creación— con una fuente aleatoria segura, o pega un KSUID para ver cuándo se creó y cuál es su parte aleatoria. Todo funciona en tu navegador.

Creado (UTC)
2017-10-10T04:00:47Z
Marca de tiempo (segundos desde la época KSUID)
107608047
Carga útil (hex)
B5A1CD34B5F99D1154FB6853345C9735

KSUID

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Indica cuántos quieres (de 1 a 100). Los KSUID aparecen al momento; pulsa Generar otros para un nuevo lote.
  2. Copia la lista: un KSUID por línea, ya ordenados.
  3. Para inspeccionar un ID, pégalo en Decodificar un KSUID: verás la fecha de creación en UTC, la marca de tiempo original y la carga útil.

Cómo funciona

Un KSUID son 20 bytes:

  • bytes 0–3: segundos desde la época KSUID (tiempo Unix 1.400.000.000), en big-endian;
  • bytes 4–19: 128 bits aleatorios.

Los 20 bytes se leen como un único número de 160 bits y se escriben en base 62 con los dígitos 0-9, A-Z, a-z, rellenando con 0 a la izquierda hasta 27 caracteres. El KSUID más grande posible es aWgEPTl1tmebfsQzFP4bxwgy80V. La decodificación hace los mismos pasos al revés.

Ejemplo

El KSUID de la documentación del formato, 0ujtsYcgvSTl8PAuAdqWYSMnLOv, se decodifica así:

  • marca de tiempo 107608047 → tiempo Unix 107.608.047 + 1.400.000.000 = 1.507.608.047;
  • creado el 2017-10-10T04:00:47Z;
  • carga útil B5A1CD34B5F99D1154FB6853345C9735.

Consejos

  • Guarda los KSUID como texto en una columna que distinga mayúsculas: a y A son dígitos distintos.
  • La fecha de creación es visible para cualquiera que tenga el ID; no uses KSUID donde eso revele información.
  • Si necesitas orden al milisegundo, usa un ULID; para compatibilidad con estándares, un UUID.

Preguntas frecuentes

¿Qué es un KSUID?

Un K-Sortable Unique IDentifier, un formato publicado por Segment. Son 20 bytes: una marca de tiempo de 4 bytes en segundos y 16 bytes (128 bits) aleatorios, escritos como 27 caracteres base62 (0-9, A-Z, a-z). Como el tiempo va primero, ordenar los KSUID como texto los ordena por fecha de creación.

¿Por qué la marca de tiempo no coincide con el tiempo Unix?

KSUID cuenta los segundos desde su propia época, 1.400.000.000 en tiempo Unix (13 de mayo de 2014, 16:53:20 UTC), de modo que el contador de 32 bits dura hasta el año 2150. Suma 1.400.000.000 a la marca guardada para obtener el tiempo Unix: 107.608.047 pasa a 1.507.608.047, es decir, el 10 de octubre de 2017 a las 04:00:47 UTC.

¿En qué se diferencia KSUID de UUID y ULID?

Un UUID v4 tiene 122 bits aleatorios y ningún orden temporal. Un ULID tiene un tiempo de 48 bits en milisegundos y 80 bits aleatorios en 26 caracteres. Un KSUID solo tiene precisión de un segundo, pero 128 bits aleatorios —más que los otros dos—, así que las colisiones son prácticamente imposibles incluso entre muchas máquinas.

¿Los ID que se generan aquí son lo bastante aleatorios?

Sí. La carga útil sale de crypto.getRandomValues, el generador criptográficamente seguro del navegador, y no se envía nada a ningún servidor. Los ID creados en el mismo segundo solo se diferencian en la carga útil, así que la lista ya sale ordenada.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 7 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.