Blog do ClockTools

Ferramentas para desenvolvedores

GUID vs UUID: Qual é a diferença?

GUID e UUID geralmente designam o mesmo identificador de 128 bits, mas a versão, o formato, a ordenação e os contratos entre sistemas continuam importantes.

Por , desenvolvedor e editor | | Revisado conforme a política editorial do ClockTools

Imagem de destaque do ClockTools com uma comparação entre GUID e UUID
Índice

GUID e UUID geralmente descrevem o mesmo tipo de identificador: um valor de 128 bits projetado para ser único sem solicitar a um contador central o próximo número. As palavras vêm de diferentes tradições de nomenclatura. UUID é o termo padrão, enquanto GUID é especialmente comum em software Microsoft e ferramentas de desenvolvedor.

Essa resposta curta é útil, mas não resolve todas as questões práticas. Dois identificadores podem ter o mesmo formato textual conhecido, 8-4-4-4-12, e ainda usar versões de UUID, regras de geração, comportamentos de ordenação ou convenções de serialização binária diferentes. Quando uma coluna de banco de dados, API ou aplicativo usa o nome GUID, o mais seguro é confirmar o formato e a versão aceitos, em vez de confiar apenas no nome.

Use o Gerador de GUID do ClockTools quando precisar de valores UUID v4 ou UUID v7 gerados no navegador, saída em lote, validação ou formatação pronta para exportação. As etapas de geração e validação são executadas localmente no navegador.

GUID vs UUID: Eles são iguais?

Na maior parte do trabalho diário de desenvolvimento, GUID e UUID são nomes intercambiáveis para um identificador de 128 bits. O padrão atual da IETF, a RFC 9562, observa explicitamente que UUIDs também são conhecidos como identificadores globalmente únicos. Portanto, um valor como 550e8400-e29b-41d4-a716-446655440000 pode ser chamado tanto de UUID quanto de GUID, sem alterar seus caracteres.

A distinção importante é entre um nome e um esquema de geração. Chamar um valor de GUID não informa se ele usa a versão 4, a versão 7, uma versão mais antiga baseada em tempo ou uma construção específica de uma plataforma. Chamá-lo de UUID não garante que um aplicativo aceite todas as versões padronizadas. O nome identifica o tipo geral de dado; a versão e o contrato de uso definem como o valor se comporta.

PerguntaGUIDUUID
Contexto típicoAPIs da Microsoft, .NET, Windows, SQL ServerPadrões da Internet, bancos de dados, sistemas distribuídos, APIs
Tamanho normal128 bits128 bits
Formato textual conhecidoGrupos hexadecimais no padrão 8-4-4-4-12Grupos hexadecimais no padrão 8-4-4-4-12
O nome especifica uma versão?NãoNão
Os termos podem referir-se ao mesmo valor?SimSim

É por isso que uma comparação GUID vs UUID deve focar menos em qual palavra está "correta" e mais nos requisitos do sistema por trás da palavra.

Por que existem dois nomes?

UUID significa identificador universalmente único. É a terminologia usada pelos padrões IETF que definem o layout, variantes, versões, representação de texto e considerações de geração. GUID significa identificador globalmente único e se consolidou nas plataformas da Microsoft. O tipo System.Guid do .NET é um exemplo familiar.

Os dois nomes permaneceram porque os ecossistemas de software mantêm seu vocabulário por compatibilidade. Uma API da Microsoft pode expor um Guid, um esquema PostgreSQL pode usar uma coluna uuid e uma API JSON pode chamar o campo de id. Os três podem conter o mesmo valor textual canônico.

Não é necessário renomear todos os campos GUID para UUID apenas por uma questão de terminologia. É necessário documentar a versão aceita, se há distinção entre maiúsculas e minúsculas, se chaves são aceitas e como o valor é serializado ao passar de um sistema para outro.

Qual é a aparência de um UUID?

O formato legível comum contém 32 dígitos hexadecimais separados em cinco grupos:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Os grupos têm 8, 4, 4, 4 e 12 caracteres. Incluindo os quatro hífens, a string canônica tem 36 caracteres. M indica o nibble de versão nas estruturas cobertas pelo padrão, enquanto os bits representados por N identificam a variante. Por exemplo, o 4 em 550e8400-e29b-41d4-a716-446655440000 identifica a versão 4 do UUID.

Diagrama do ClockTools com a estrutura textual de um UUID de 128 bits e os campos de versão e variante
Diagrama do ClockTools com a estrutura textual de um UUID de 128 bits e os campos de versão e variante

O uso de maiúsculas ou minúsculas em hexadecimal não altera o valor numérico. A716 e a716 representam os mesmos bits. Hífens, chaves, um prefixo urn:uuid: ou uma forma compacta podem mudar a string aceita por um analisador, mas não necessariamente alteram o identificador em si. Esse é um dos motivos pelos quais o ClockTools separa a geração da formatação.

Qual a diferença entre UUID v4 e UUID v7?

UUID v4 é a versão aleatória amplamente utilizada. A maior parte dos bits disponíveis é preenchida a partir de uma fonte aleatória ou pseudoaleatória, com os bits obrigatórios definidos para a versão e a variante. Ela funciona bem quando os identificadores não devem revelar a ordem de criação e quando a geração ocorre de forma independente em vários clientes ou serviços.

UUID v7 é ordenado por tempo. Seus primeiros 48 bits contêm um timestamp em milissegundos desde a época Unix, seguido de versão, variante e dados aleatórios. Na ordenação, valores gerados mais tarde geralmente ficam depois dos gerados antes. Isso pode favorecer índices ordenados e logs, pois novos registros têm menos chance de ocupar posições dispersas no espaço de chaves.

Ser ordenado por tempo não significa ser perfeitamente sequencial. Vários UUIDs v7 criados no mesmo milissegundo ainda precisam de dados adicionais para permanecer distintos, e o comportamento do relógio importa. Também não significa ser secreto: um valor v7 revela o momento aproximado de criação por definição. A RFC 9562 contém as estruturas normativas e as orientações de geração para ambas as versões.

Qual versão você deve escolher?

Escolha a versão compatível com o sistema que receberá os dados e com o comportamento de que você precisa.

RequisitoOpção geralmente preferívelPor que
Ampla compatibilidade com sistemas existentes com reconhecimento de UUIDUUID v4É maduro, familiar e comumente aceito
Nenhuma informação de tempo de criação no identificadorUUID v4O valor é aleatório e não ordenado no tempo
Chaves que seguem aproximadamente o tempo de criaçãoUUID v7O prefixo com timestamp permite a ordenação cronológica
A API existente requer explicitamente uma versãoVersão necessáriaA compatibilidade supera a preferência
Código curto visível para humanosNenhuma das duas por padrãoUUIDs são identificadores, não códigos de confirmação amigáveis
Token de autenticação ou segredo de redefinição de senhaUma solução específica para tokens segurosUnicidade e sigilo são propriedades diferentes

Não mude de versão apenas porque uma parece mais recente. Verifique primeiro o driver do banco de dados, a biblioteca de validação, o esquema da API e os sistemas que consomem esses valores. Um validador escrito anos atrás pode rejeitar um valor v7 válido porque reconhece apenas versões mais antigas.

O mesmo UUID pode parecer diferente?

Sim. Os mesmos 128 bits podem ser apresentados no formato padrão em minúsculas, em maiúsculas, entre chaves, entre aspas, em hexadecimal compacto ou no formato URN. O ClockTools também pode organizar os valores gerados em linhas, CSV, JSON ou uma saída compatível com SQL. Essas são opções de representação, não novos identificadores.

A troca de dados binários exige mais cuidado. Historicamente, algumas APIs de plataforma expõem campos GUID ou arrays de bytes em uma ordem diferente da ordem de bytes de rede descrita pelas especificações modernas de UUID. Converter uma string e depois recuperá-la pode produzir um resultado correto, enquanto o mesmo processo com 16 bytes brutos pode falhar. Quando sistemas trocam UUIDs binários, documente a ordem dos bytes e teste com um valor conhecido, em vez de presumir que todas as bibliotecas serializam da mesma forma.

Em parâmetros de consulta ou segmentos de caminho de URLs, use a forma canônica sempre que possível. Se um valor que contém o identificador precisar de escape, o Codificador de URL do ClockTools pode codificar o parâmetro completo sem alterar o próprio identificador.

Como você deve armazenar GUIDs e UUIDs?

Prefira o tipo nativo de UUID ou de identificador único do banco de dados quando ele estiver disponível e for compatível com suas ferramentas. Um tipo nativo valida o formato e normalmente armazena o valor de 128 bits de forma mais compacta do que uma coluna de texto de 36 caracteres. Também pode deixar a finalidade mais clara para quem lê o esquema.

Armazenar como texto continua sendo razoável quando o sistema não tem um tipo nativo ou quando a compatibilidade exige uma string. Nesse caso, padronize uma representação, defina o comprimento permitido e evite misturar valores entre chaves, URNs, maiúsculas e formatos compactos na mesma coluna. Uma formatação consistente simplifica comparações de igualdade, exportações e o trabalho de suporte.

O comportamento do índice depende do banco de dados, da carga de trabalho, do padrão de inserção e do design do índice. UUID v7 pode melhorar a localidade para algumas cargas de trabalho de chave primária com muitos acréscimos, mas não é uma garantia universal de desempenho. Meça com seu próprio banco de dados e dados realistas. Mantenha o significado do negócio em colunas separadas; um identificador não deve substituir um carimbo de data/hora de criação, número de cliente ou regra de controle de acesso.

Como o ClockTools pode gerá-los e validá-los?

O gerador on-line de GUID e UUID oferece um fluxo de trabalho focado:

  1. Selecione UUID v4 para identificadores aleatórios ou UUID v7 para identificadores ordenados por tempo.
  2. Escolha uma quantidade de 1 a 1,000.
  3. Selecione o formato padrão, em maiúsculas, entre chaves, entre aspas, compacto ou URN.
  4. Escolha codificação simples, Base64, Base64URL ou URL quando o destino exigir.
  5. Exporte como linhas, CSV, JSON ou SQL, ou copie os resultados diretamente.
  6. Cole um valor existente no validador para inspecionar sua forma normalizada, versão, variante e valores especiais reconhecidos.

A geração usa a fonte de aleatoriedade criptográfica do navegador. UUID v4 define os bits obrigatórios de versão e variante. UUID v7 combina o valor atual em milissegundos desde a época Unix com dados aleatórios e os bits exigidos pela estrutura. A página não precisa enviar os identificadores gerados para realizar essas operações.

Ao comparar duas listas exportadas, use o Comparador de texto para identificar uma entrada ausente, repetida ou reformatada sem examinar cada linha manualmente.

Que erros você deve evitar?

O primeiro erro é tratar “único” como “impossível de colidir”. Os UUIDs são projetados para tornar colisões acidentais extremamente improváveis quando gerados corretamente, mas o software ainda deve usar uma restrição de unicidade quando duplicatas forem prejudiciais. Uma fonte de aleatoriedade defeituosa, dados de teste copiados, um erro de importação ou um bug no aplicativo podem criar uma duplicata mesmo quando a matemática está correta.

O segundo erro é usar UUID como prova de autorização. Um identificador difícil de adivinhar pode reduzir a descoberta casual, mas por si só não concede permissão com segurança. Verifique o acesso do usuário autenticado em cada solicitação protegida.

O terceiro erro é mudar silenciosamente a representação. A remoção de hífens, a decodificação de Base64 ou a conversão para bytes devem ser reversíveis e testadas. Mantenha um valor canônico nos logs para que os operadores possam rastreá-lo nos serviços. Se um analisador rejeitar um identificador, valide a versão e o formato antes de gerar uma substituição; substituir um ID pode quebrar referências que já apontam para ele.

Perguntas frequentes

GUID e UUID são a mesma coisa?

Normalmente, sim. Ambos os termos geralmente se referem a um identificador de 128 bits com o mesmo formato de texto padrão. UUID é o termo dos padrões IETF, enquanto GUID é especialmente comum em ecossistemas Microsoft.

Um GUID é sempre um UUID versão 4?

Não. A palavra GUID não identifica uma versão de UUID. Um valor em forma de GUID pode usar a versão 4, versão 7, outra versão padronizada ou um método de geração específico da plataforma.

Devo usar UUID v4 ou UUID v7?

Use v4 quando quiser um identificador aleatório amplamente compatível, sem o momento de criação embutido. Considere v7 quando a ordenação cronológica e a localidade do índice forem importantes, desde que todos os sistemas que receberão os dados sejam compatíveis.

Quantos caracteres existem em um GUID ou UUID padrão?

O formato de texto canônico possui 32 dígitos hexadecimais e quatro hifens, totalizando 36 caracteres. Chaves, prefixos URN, formatação compacta ou aspas podem alterar o comprimento exibido.

Posso usar um UUID como token secreto?

Não presuma que unicidade garante sigilo. Tokens de autenticação e de redefinição de senha precisam de uma solução específica para credenciais seguras e imprevisíveis, com verificações de expiração e autorização.

O ClockTools envia os UUIDs gerados para um servidor?

O Gerador de GUID realiza a geração, a formatação e a validação localmente no navegador. Ele usa a fonte de aleatoriedade criptográfica do navegador para as partes aleatórias dos UUIDs compatíveis.

Sobre o autor

Vigneshwaran Vijayakumar

Fundador, desenvolvedor e editor do ClockTools | Gerente de marketing digital | Índia

Vigneshwaran é engenheiro e tem décadas de experiência técnica, incluindo atuação profissional como gerente de marketing digital em Dubai. Seu trabalho reúne análise de dados, otimização para mecanismos de busca, otimização da taxa de conversão, sistemas de conteúdo, produção visual, IA aplicada e aprendizado de máquina. No ClockTools, ele transforma essa experiência multidisciplinar em ferramentas de navegador voltadas a tarefas específicas e guias práticos fundamentados em fontes.

Perfil do LinkedIn