Decodificador e Validador UUID

Decodifique e valide UUIDs para extrair versão, timestamp e metadados

Experimente estes exemplos:

O que é Decodificação de UUID?

Decodificação de UUID é o processo de analisar um UUID para extrair informações sobre seu:

  • Version: Qual versão do UUID (1-8) baseada em 4 bits na posição 48-51
  • Variant: Qual variante do UUID (geralmente RFC 4122) baseada nos bits 64-65
  • Components: Extração de timestamp, ID do nó ou outros dados baseada na versão
  • Tempo de geração: Para UUIDs baseados em tempo (v1, v6, v7)

Example: 123e4567-e89b-12d3-a456-426614174000 é um UUID Versão 1 criado em 2018-10-03 09:45:32 UTC.

Visão geral da estrutura do UUID

FormatDescription
8-4-4-4-1232 dígitos hexadecimais agrupados com hífens
Bits da versãoBits 48-51 (13º dígito)
Bits da varianteBits 64-65 (17º dígito)

O número da versão aparece como o primeiro dígito hex na terceira parte (ex., 123e4567-e89b-12d3-a456-426614174000 para a versão 1).

Decodificação por versão do UUID

VersionO que pode ser decodificado
UUID v1
  • Timestamp (com precisão de 100ns, desde 15 de outubro de 1582)
  • Endereço MAC (se não for aleatório)
  • Sequência de relógio (para evitar colisões)
UUID v3/v5
  • Não é possível decodificar a entrada original
  • Pode verificar se foi criado a partir de entradas conhecidas
  • Pode distinguir entre v3 (MD5) e v5 (SHA-1)
UUID v4
  • Apenas dados aleatórios
  • Nenhuma informação extraível
  • Pode verificar se é um UUID v4 válido
UUID v6
  • Timestamp (com precisão de 100ns, desde 15 de outubro de 1582)
  • Endereço MAC (se não for aleatório)
  • Sequência de relógio (para evitar colisões)
UUID v7
  • Timestamp Unix (precisão em milissegundos)
  • Componente aleatório (não decodificável)
ULID
  • Timestamp Unix (precisão em milissegundos)
  • Componente aleatório (não decodificável)

Extração de timestamp de UUIDs

Tipo de UUIDMétodo de extração de tempoEpoch
UUID v1Combine os bits 0-31, 32-47 e 48-59, reordenando os componentes do timestamp15 de outubro de 1582
UUID v6Extraia os bits 0-59 (já na ordem correta)15 de outubro de 1582
UUID v7Extraia os bits 0-47 (milissegundos Unix)1 de janeiro de 1970
ULIDDecodifique os primeiros 10 caracteres Base32 para obter milissegundos Unix de 48 bits1 de janeiro de 1970

Regras de validação de UUID

  • Verificação de formato: 8-4-4-4-12 dígitos hexadecimais com hífens
  • Verificação de versão: 13º caractere deve ser 1-8
  • Verificação de variante: O 17º caractere deve ser 8, 9, A ou B (para RFC 4122)

Expressão regular para validação básica de UUID:

^[0-9a-f]8-[0-9a-f]4-[1-8][0-9a-f]3-[89ab][0-9a-f]3-[0-9a-f]12$

Aplicações práticas

  • Análise forense: Determinando quando IDs foram criados
  • Debugging: Rastreando comportamento do sistema através de timestamps de ID
  • Auditing: Validando integridade cronológica
  • Análise de segurança: Detectando IDs falsificados ou manipulados
  • Recuperação de dados: Reconstruindo relações temporais
  • Migrações de sistema: Entendendo detalhes da implementação legada de UUID

Extração de endereço MAC (v1/v6)

Para UUID v1 e v6, você pode frequentemente extrair o identificador do nó (endereço MAC) se ele não foi randomizado durante a geração:

  1. Extraia os últimos 12 dígitos hexadecimais (48 bits) do UUID
  2. Formato com dois pontos como XX:XX:XX:XX:XX:XX
  3. Verifique se o endereço MAC é real ou aleatório examinando o bit multicast

Se o primeiro byte tiver o bit 0x01 definido, provavelmente é um ID de nó randomizado em vez de um endereço MAC real.

Perguntas frequentes

Posso determinar exatamente quando um UUID v4 foi criado?

Não. UUID v4 é puramente aleatório sem informação de timestamp. O momento da criação não pode ser determinado a partir de um valor UUID v4.

Quão precisos são os timestamps em UUIDs baseados em tempo?

Timestamps de UUID v1/v6 têm precisão de 100 nanossegundos. UUID v7 e ULID têm precisão em milissegundos. No entanto, a precisão real do relógio do sistema pode variar.

Posso converter entre versões de UUID?

Não, você não pode converter diretamente entre versões preservando o mesmo valor de identificador. Versões diferentes têm estruturas fundamentalmente diferentes.

Posso identificar o computador que gerou um UUID v1?

Se o ID do nó não foi randomizado, um UUID v1 pode conter o endereço MAC do sistema gerador. No entanto, muitas implementações modernas randomizam isso por privacidade.

Como posso saber se um UUID é válido?

Verifique o formato (8-4-4-4-12 dígitos hexadecimais), confirme que o dígito da versão (13º caractere) está entre 1-8, e confirme os bits de variante (17º caractere é 8, 9, A ou B para UUIDs RFC 4122).

Resources