Decodificador de UUID e Extrator de Timestamp

Decodifique timestamps de UUID v1, v6 e v7 como ISO UTC e hora Unix, além de inspecionar versão e metadados.

Experimente estes exemplos:

O que é a decodificação de UUID?

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

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

Example: 123e4567-e89b-12d3-a456-426614174000 é um UUID de Versão 1 com o carimbo de data/hora 2228-06-25T20:01:28.545Z quando mostrado com precisão de milissegundos do JavaScript.

Visão geral da estrutura do UUID

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

O número da versão aparece como o primeiro dígito hexadecimal no terceiro grupo (por exemplo, 123e4567-e89b-12d3-a456-426614174000 para a versão 1).

Decodificação por versão do UUID

VersionO que pode ser decodificado
UUID v1
  • Carimbo de data/hora (com precisão de 100 ns, desde 15 de outubro de 1582)
  • Endereço MAC (se não randomizado)
  • Sequência de clock (para evitar colisões)
UUID v3/v5
  • O namespace e o nome não podem ser recuperados a partir do hash
  • Pode ser regenerado somente quando tanto o namespace quanto o nome forem conhecidos
  • Pode distinguir v3 (MD5) de v5 (SHA-1)
UUID v4
  • Apenas dados aleatórios
  • Nenhuma informação extraível
  • Pode-se verificar que é um UUID v4 válido
UUID v6
  • Carimbo de data/hora (com precisão de 100 ns, desde 15 de outubro de 1582)
  • Endereço MAC (se não randomizado)
  • Sequência de clock (para evitar colisões)
UUID v7
  • Carimbo Unix (precisão de milissegundos)
  • Componente aleatório (não decodificável)

Extração de carimbo de data/hora a partir 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 carimbo de data/hora15 de outubro de 1582
UUID v6Combine os bits 0-47 com os bits 52-63; os bits 48-51 são a versão e são excluídos15 de outubro de 1582
UUID v7Extraia os bits 0-47 (milissegundos Unix)1 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 da versão: O 13º caractere deve ser 1-8
  • Verificação da 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}$

Exemplo de carimbo v7 do UUID

017f22e2-79b0-7cc3-98c4-dc0c0c07398f é o vetor de teste RFC 9562 para UUIDv7. Seus primeiros 48 bits são milissegundos Unix, que decodificam para 2022-02-22T19:22:22.000Z, 1645557742000 milissegundos, ou 1645557742 seconds.

Gerar um novo UUID v7, ou continuar com o Conversor de carimbo Unix. Esses links não incluem o UUID que você inseriu.

Aplicações práticas

  • Análise forense: Determinar quando IDs foram criados
  • Debugging: Rastrear o comportamento do sistema através dos carimbos de IDs
  • Auditing: Validar a integridade cronológica
  • Verificações de formato: Detectar IDs malformados; um UUID válido não prova autenticidade
  • Recuperação de dados: Reconstruir relações temporais
  • Migrações de sistema: Compreender detalhes de implementações legadas de UUID

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

Para UUID v1 e v6, frequentemente é possível 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. Formate com dois pontos como XX:XX:XX:XX:XX:XX
  3. Verifique se o endereço MAC é real ou aleatório examinando o bit de multicast

Se o primeiro byte tiver o bit 0x01 definido, é provável que seja 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 carimbo de data/hora. O momento de criação não pode ser determinado a partir de um valor UUID v4.

Quão precisos são os carimbos de data/hora em UUIDs baseados em tempo?

UUID v1/v6 têm carimbos com precisão de 100 nanossegundos. UUID v7 tem precisão de milissegundos. Contudo, a exatidão real do relógio do sistema pode variar.

Posso converter entre versões de UUID?

Não, não é possível converter diretamente entre versões preservando o mesmo valor identificador. Versões diferentes têm estruturas fundamentalmente distintas.

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 que o gerou. 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 o dígito de versão (13º caractere) ser 1-8 e confirme os bits de variante (17º caractere é 8, 9, A ou B para UUIDs RFC 4122).

Resources