AZ Tools

Inspetor de UUID (versão, variante, tempo)

Desenvolvimento

Um UUID não é só uma string aleatória — seus 128 bits codificam uma versão e uma variante, e as versões baseadas em tempo carregam uma marca de tempo real. Este inspetor analisa qualquer UUID (forma canônica, entre chaves ou urn:uuid:) e diz exatamente o que ele é: o número da versão e seu nome (v1 tempo+nó, v2 DCE, v3 nome com MD5, v4 aleatório, v5 nome com SHA-1, v6 tempo reordenado, v7 tempo de época Unix, v8 personalizado), e a variante (RFC 4122, NCS legada ou Microsoft). Para v1 e v6 decodifica a marca de tempo gregoriana de 60 bits para uma data real, mais a sequência de relógio e o nó, sinalizando se o nó é um MAC unicast real ou um endereço multicast aleatório. Para v7 lê a marca de tempo Unix de 48 bits em milissegundos. Também reconhece os UUIDs nil e max. É o jeito rápido de responder "quando isto foi criado?" ou "é mesmo um v4?" Tudo roda localmente; nada é enviado.

Canônico017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Versão7 — Tempo de época Unix
VarianteRFC 4122
Marca de tempo (UTC)2022-02-22T19:22:22.000Z
Relativohá 4y 4mo

v1/v6 carregam marca gregoriana; v7 uma marca Unix-ms; v4 é aleatório. A variante é lida dos bits, não adivinhada.

Como usar

  1. Cole um UUID (com ou sem traços, chaves ou prefixo urn:uuid:).
  2. Leia a versão e a variante; para v1/v6/v7 a marca de tempo de criação é decodificada automaticamente.
  3. Use os botões de cópia para a forma canônica ou a marca de tempo.

Perguntas frequentes

Quais versões carregam marca de tempo?
v1 e v6 embutem uma contagem de 60 bits de intervalos de 100 nanossegundos desde 1582-10-15 (a reforma gregoriana), que esta ferramenta converte em uma data normal. v7 embute uma marca de tempo Unix de 48 bits em milissegundos nos primeiros bits. v3, v4, v5 e v8 não carregam um tempo decodificável — v4 é totalmente aleatório, v3/v5 são hashes de um nome e v8 é definido pela implementação.
Como a versão é determinada?
A versão é o nibble alto do 7.º byte (o primeiro dígito hex do terceiro grupo entre traços). A variante vem dos bits altos do 9.º byte: 10x é RFC 4122, 0xx é o layout NCS legado e 110x é o layout GUID da Microsoft. Ambos são lidos diretamente dos bits, então a resposta é exata.
O que o nó / MAC me diz?
Em um UUID v1 ou v6 os últimos 48 bits são o nó. O v1 clássico usava o endereço MAC da máquina geradora (uma questão de privacidade), mas bibliotecas modernas usam um valor aleatório com o bit multicast ativado. Esta ferramenta mostra o nó e sinaliza se esse bit multicast indica um nó aleatório ou um MAC unicast real.
O tempo decodificado é confiável?
É exatamente o que está codificado no UUID, então é confiável desde que o relógio do gerador estivesse correto e seja realmente a versão que afirma. Um UUID forjado ou editado à mão pode carregar qualquer marca de tempo, então trate o tempo como informativo, não como prova.

Ferramentas relacionadas