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
Format | Description |
---|---|
8-4-4-4-12 | 32 dígitos hexadecimais agrupados com hífens |
Bits da versão | Bits 48-51 (13º dígito) |
Bits da variante | Bits 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
Version | O que pode ser decodificado |
---|---|
UUID v1 |
|
UUID v3/v5 |
|
UUID v4 |
|
UUID v6 |
|
UUID v7 |
|
ULID |
|
Extração de timestamp de UUIDs
Tipo de UUID | Método de extração de tempo | Epoch |
---|---|---|
UUID v1 | Combine os bits 0-31, 32-47 e 48-59, reordenando os componentes do timestamp | 15 de outubro de 1582 |
UUID v6 | Extraia os bits 0-59 (já na ordem correta) | 15 de outubro de 1582 |
UUID v7 | Extraia os bits 0-47 (milissegundos Unix) | 1 de janeiro de 1970 |
ULID | Decodifique os primeiros 10 caracteres Base32 para obter milissegundos Unix de 48 bits | 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 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:
- Extraia os últimos 12 dígitos hexadecimais (48 bits) do UUID
- Formato com dois pontos como XX:XX:XX:XX:XX:XX
- 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).