Generador y decodificador de Snowflake ID
Genera y decodifica Snowflake ID de 64 bits con las épocas de Twitter o Discord, directamente en tu navegador. Nada de lo que introduces sale de tu dispositivo.
El generador de Snowflake ID funciona por completo en tu navegador. Los ID, marcas de tiempo y valores de campo que introduces o decodificas nunca salen de tu dispositivo y nada se sube a ArrayKit.
Abre el generador de ULID
Acerca de Snowflake ID
El generador de Snowflake ID construye Snowflake ID de 64 bits como lo hacen Twitter y Discord: una marca de tiempo en milisegundos, un id de worker, un id de proceso y una secuencia por milisegundo empaquetados en un solo BigInt. Elige el preset de época de Discord o Twitter, o escribe tu propia época en milisegundos Unix, y luego define la marca de tiempo y los valores de campo para acuñar un ID. Cambia a Decodificar para pegar cualquier Snowflake y ver la marca de tiempo exacta en milisegundos, su hora ISO y los bits de worker, proceso y secuencia bajo la época que elegiste. Es útil para descubrir mediante ingeniería inversa cuándo se publicó un mensaje de Discord, reproducir un ID en un fixture de pruebas o comprobar la coherencia de un esquema de id distribuido. Todo el desplazamiento de bits ocurre en tu dispositivo; los ID y marcas de tiempo que introduces nunca se suben.
Características
- Genera un Snowflake de 64 bits a partir de una marca de tiempo, worker, proceso y secuencia
- Presets de época de un clic para Discord (1420070400000) y Twitter (1288834974657)
- Campo de época personalizada para cualquier otro esquema de Snowflake en milisegundos Unix
- El modo Decodificar convierte cualquier Snowflake en su marca de tiempo, hora ISO y bits de campo
- El botón "Ahora" siembra la marca de tiempo desde tu reloj para un ID de la hora actual
- La matemática BigInt mantiene los 64 bits exactos: sin pérdida de precisión en ID grandes
- Errores de rango claros cuando worker, proceso o secuencia desbordan sus bits
- Funciona por completo en tu navegador sin enviar ningún ID a ningún servidor
Cómo usar Snowflake ID
- Elige Discord, Twitter o una época personalizada
- En Generar, define la marca de tiempo y los valores de worker, proceso y secuencia
- Copia el Snowflake ID de 64 bits resultante
- Cambia a Decodificar y pega un Snowflake para recuperar su marca de tiempo y campos
Ejemplo
Entrada
175928847299117063 (Discord epoch)
Salida
timestamp: 2016-04-30T11:18:25.796Z
worker: 1 process: 0 sequence: 7
Decodificar un Snowflake de Discord recupera cuándo se creó y sus bits de campo.
Errores comunes y solución de problemas
- La marca de tiempo decodificada se desvía décadas (p. ej. año 1970 o 2100). — Estás decodificando con la época equivocada. Cambia el preset para que coincida con la fuente —las épocas de Discord y Twitter difieren en años— o define la época personalizada exacta.
- Generar informa 'Sequence must be between 0 and 4095.' — El campo de secuencia es solo de 12 bits. Mantén worker y proceso dentro de 0–31 y la secuencia dentro de 0–4095 para que cada valor quepa en su hueco.
- 'Timestamp is before the chosen epoch.' — Un Snowflake almacena milisegundos desde su época, así que la marca de tiempo debe estar en la época o después. Elige una hora posterior o una época menor.
- El ID pegado parece redondeado o pierde sus últimos dígitos. — Los Snowflake superan el rango de enteros seguro de JavaScript, así que trátalos como cadenas. Esta herramienta usa BigInt, pero evita pegar un ID que otra herramienta ya haya interpretado como un flotante.
Preguntas frecuentes
- ¿Qué es un Snowflake ID?
- Un Snowflake es un id de 64 bits que usan Twitter y Discord que empaqueta una marca de tiempo en milisegundos, un id de worker (máquina), un id de proceso y una secuencia por milisegundo en un solo número ordenable, así que los id son únicos y están aproximadamente ordenados por tiempo sin un contador central.
- ¿Cómo averiguo cuándo se envió un mensaje de Discord a partir de su ID?
- Pega el id del mensaje o usuario en Decodificar con la época de Discord seleccionada. La herramienta desplaza los 42 bits de marca de tiempo, suma la época de Discord (1420070400000 ms) y muestra la hora exacta de creación en ISO y milisegundos Unix.
- ¿Cuál es la diferencia entre las épocas de Twitter y Discord?
- Ambas disposiciones tienen los mismos anchos de bits, pero cuentan milisegundos desde puntos de inicio distintos: Twitter usa 1288834974657 (nov 2010) y Discord usa 1420070400000 (ene 2015). Decodificar con la equivocada desplaza cada marca de tiempo por esa diferencia.
- ¿Por qué worker y proceso están limitados a 31 y la secuencia a 4095?
- La disposición da 5 bits a cada uno de worker y proceso (2^5 − 1 = 31) y 12 bits a la secuencia (2^12 − 1 = 4095). Los valores por encima de esos límites desbordarían al siguiente campo, así que el generador los rechaza.
- ¿Puedo usar una época personalizada para mi propio servicio?
- Sí. Elige el preset Personalizado e introduce tu época en milisegundos Unix. Generar y Decodificar usan entonces ese valor, lo que te permite trabajar con cualquier esquema de estilo Snowflake que mantenga la disposición de bits 42/5/5/12.
- ¿Se envían a algún sitio los ID que genero o decodifico?
- No. Cada desplazamiento de bits se ejecuta en tu navegador con BigInt. Las marcas de tiempo, ids y valores de campo que escribes o pegas nunca salen de tu dispositivo y no se suben a ArrayKit.
Herramientas relacionadas
Todas las herramientas de ArrayKit