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) 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: Extrair timestamp, node ID 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 Versão 1 com o timestamp 2228-06-25T20:01:28.545Z quando mostrado com precisão de milissegundos do JavaScript.
Visão Geral da Estrutura do UUID
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 dígitos hex agrupados com hífens |
| Bits de versão | Bits 48-51 (13º dígito) |
| Bits de variante | Bits 64-65 (17º dígito) |
O número da versão aparece como o primeiro dígito hex do terceiro grupo (por exemplo, 123e4567-e89b-12d3-a456-426614174000 para a versão 1).
Decodificação por Versão de UUID
| Version | O que pode ser decodificado |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
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 | Combine os bits 0-47 com os bits 52-63; os bits 48-51 são a versão e são excluídos | 15 de outubro de 1582 |
| UUID v7 | Extraia 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 de versão: O 13º caractere deve ser 1-8
- Verificação de variante: O 17º caractere deve ser 8, 9, A ou B (para UUIDs 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 timestamp de UUID v7
017f22e2-79b0-7cc3-98c4-dc0c0c07398f é o vetor de teste RFC 9562 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 Timestamp 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 timestamps dos IDs
- Auditing: Validar 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: Entender detalhes de implementações legadas de UUID
Extração de Endereço MAC (v1/v6)
Para UUID v1 e v6, você frequentemente pode extrair o identificador do node (endereço MAC) se ele não foi randomizado durante a geração:
- Extraia os últimos 12 dígitos hex (48 bits) do UUID
- Formate com dois pontos como XX:XX:XX:XX:XX:XX
- 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 node ID randomizado em vez de um MAC real.
Perguntas Frequentes
Posso determinar exatamente quando um UUID v4 foi criado?
Não. UUID v4 é puramente aleatório e não contém informação de timestamp. O momento da criação não pode ser determinado a partir de um UUID v4.
Quão precisos são os timestamps em UUIDs baseados em tempo?
UUID v1/v6 têm timestamps com precisão de 100 nanossegundos. UUID v7 tem precisão de milissegundos. Porém, 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 identificador. Versões diferentes têm estruturas fundamentalmente diferentes.
Posso identificar o computador que gerou um UUID v1?
Se o node ID não foi randomizado, um UUID v1 pode conter o endereço MAC do sistema que o gerou. Entretanto, 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 hex), confirme o dígito de versão (13º caractere) é 1-8 e confirme os bits de variante (17º caractere é 8, 9, A ou B para UUIDs RFC 4122).