Gerador e Decodificador de Snowflake ID
Gere e decodifique Snowflake IDs de 64 bits com épocas do Twitter ou do Discord, direto no seu navegador. Nada que você digita sai do seu dispositivo.
O Gerador de Snowflake ID roda inteiramente no seu navegador. Os IDs, timestamps e valores de campo que você digita ou decodifica nunca saem do seu dispositivo e nada é enviado à ArrayKit.
Abrir o Gerador de ULID
Sobre Gerador de Snowflake ID
O Gerador de Snowflake ID monta Snowflake IDs de 64 bits do jeito que o Twitter e o Discord fazem: um timestamp em milissegundos, um worker id, um process id, e uma sequência por milissegundo empacotados em um único BigInt. Escolha a predefinição de época do Discord ou do Twitter, ou digite sua própria época em milissegundos Unix, depois defina o timestamp e os valores dos campos para cunhar um ID. Mude para Decodificar para colar qualquer Snowflake e ver o timestamp exato em milissegundos, seu horário ISO, e os bits de worker, processo e sequência sob a época que você escolheu. É útil para descobrir por engenharia reversa quando uma mensagem do Discord foi postada, reproduzir um ID em um fixture de teste, ou conferir a sanidade de um esquema de id distribuído. Todo o deslocamento de bits acontece no seu dispositivo; os IDs e timestamps que você digita nunca são enviados.
Recursos
- Gere um Snowflake de 64 bits a partir de um timestamp, worker, processo e sequência
- Predefinições de época do Discord (1420070400000) e do Twitter (1288834974657) em um clique
- Campo de época personalizada para qualquer outro esquema Snowflake em milissegundos Unix
- O modo Decodificar transforma qualquer Snowflake em seu timestamp, horário ISO e bits de campo
- O botão "Agora" preenche o timestamp a partir do seu relógio para um ID de hora atual
- A matemática BigInt mantém todos os 64 bits exatos — sem perda de precisão em IDs grandes
- Erros de faixa claros quando worker, processo ou sequência estouram seus bits
- Roda inteiramente no seu navegador sem IDs enviados a nenhum servidor
Como usar Gerador de Snowflake ID
- Escolha Discord, Twitter ou uma época personalizada
- Em Gerar, defina o timestamp e os valores de worker, processo e sequência
- Copie o Snowflake ID de 64 bits resultante
- Mude para Decodificar e cole um Snowflake para ler de volta seu timestamp e campos
Exemplo
Entrada
175928847299117063 (Discord epoch)
Saída
timestamp: 2016-04-30T11:18:25.796Z
worker: 1 process: 0 sequence: 7
Decodificar um Snowflake do Discord recupera quando ele foi criado e seus bits de campo.
Erros comuns e solução de problemas
- O timestamp decodificado está errado por décadas (ex.: ano 1970 ou 2100). — Você está decodificando com a época errada. Mude a predefinição para combinar com a origem — as épocas do Discord e do Twitter diferem em anos — ou defina a época personalizada exata.
- O Gerar informa 'Sequence must be between 0 and 4095.' — O campo de sequência tem só 12 bits. Mantenha worker e processo entre 0–31 e a sequência entre 0–4095 para que cada valor caiba em seu espaço.
- 'Timestamp is before the chosen epoch.' — Um Snowflake armazena milissegundos desde sua época, então o timestamp precisa ser igual ou posterior à época. Escolha um horário mais tardio ou uma época menor.
- O ID colado parece arredondado ou perde seus últimos dígitos. — Snowflakes excedem a faixa de inteiros seguros do JavaScript, então trate-os como strings. Esta ferramenta usa BigInt, mas evite colar um ID que alguma outra ferramenta já analisou como um float.
Perguntas frequentes
- O que é um Snowflake ID?
- Um Snowflake é um id de 64 bits usado pelo Twitter e pelo Discord que empacota um timestamp em milissegundos, um id de worker (máquina), um id de processo e uma sequência por milissegundo em um único número ordenável, para que os ids sejam únicos e mais ou menos ordenados no tempo sem um contador central.
- Como descubro quando uma mensagem do Discord foi enviada a partir de seu ID?
- Cole o id da mensagem ou do usuário em Decodificar com a época do Discord selecionada. A ferramenta desloca os 42 bits de timestamp, soma a época do Discord (1420070400000 ms), e mostra o horário exato de criação como ISO e milissegundos Unix.
- Qual é a diferença entre as épocas do Twitter e do Discord?
- Ambos os layouts têm as mesmas larguras de bits, mas contam milissegundos a partir de pontos de início diferentes: o Twitter usa 1288834974657 (nov 2010) e o Discord usa 1420070400000 (jan 2015). Decodificar com a errada desloca cada timestamp por essa diferença.
- Por que worker e processo são limitados a 31 e a sequência a 4095?
- O layout dá 5 bits cada a worker e processo (2^5 − 1 = 31) e 12 bits à sequência (2^12 − 1 = 4095). Valores acima desses limites estourariam para o próximo campo, então o gerador os rejeita.
- Posso usar uma época personalizada para o meu próprio serviço?
- Sim. Escolha a predefinição Personalizada e digite sua época em milissegundos Unix. Gerar e Decodificar então usam esse valor, o que permite trabalhar com qualquer esquema estilo Snowflake que mantenha o layout de bits 42/5/5/12.
- Os IDs que eu gero ou decodifico são enviados para algum lugar?
- Não. Cada deslocamento de bits roda no seu navegador com BigInt. Os timestamps, ids e valores de campo que você digita ou cola nunca saem do seu dispositivo e não são enviados à ArrayKit.
Ferramentas relacionadas
Todas as ferramentas de ArrayKit