O que é GUID? — Estrutura, versões e unicidade explicadas
2026-05-24
Tags: Windows · GUID · Guia · QuickGUID
Se você já desenvolveu algo no Windows, com certeza já viu isso — uma sequência de caracteres hexadecimais que parece um monte de lixo aleatório:
6B29FC40-CA47-1067-B31D-00DD010662DAEla pode aparecer no registro, em arquivos de configuração, em saídas de log ou no meio de alguma mensagem de erro. Você sabe que se chama GUID, e também sabe que "deve ser único", mas provavelmente nunca parou pra pensar — o que exatamente é essa coisa? Por que ela tem esse formato? Como ela garante que não vai se repetir?
Vamos falar sobre isso hoje.
UUID e GUID: dois nomes para a mesma coisa
Primeiro, um fato que muita gente não sabe: GUID e UUID são a mesma coisa.
- UUID (Universally Unique Identifier, Identificador Único Universal) é o nome oficial, definido na RFC 4122.
- GUID (Globally Unique Identifier, Identificador Único Global) é o nome que a Microsoft deu a ele.
Simples assim. UUID é o nome do padrão, GUID é o apelido que a Microsoft usa no COM, na API do Windows, no .NET e em outras tecnologias da plataforma. O GUID que você vê no Windows e o UUID que você vê no Linux são essencialmente a mesma coisa.
Para manter a coerência, este artigo vai usar principalmente o nome GUID — afinal, estamos falando de desenvolvimento no Windows.
A estrutura do GUID: parece bagunçado, mas tem lógica
Um GUID padrão se parece com isso:
6B29FC40-CA47-1067-B31D-00DD010662DAFormato 8-4-4-4-12, totalizando 32 caracteres hexadecimais (128 bits), separados por hífens em 5 blocos. Parece aleatório, mas tem uma estrutura interna:
6B29FC40-CA47-1067-B31D-00DD010662DA
↑ ↑
versão varianteA chave está no primeiro caractere do terceiro bloco e no primeiro caractere do quarto bloco:
- Versão (Version): O primeiro dígito hexadecimal do terceiro bloco indica qual algoritmo foi usado para gerar o GUID.
1indica v1,4indica v4,7indica v7. - Variante (Variant): O primeiro dígito hexadecimal do quarto bloco indica qual especificação o GUID segue. Se começar com
8,9,AouB, ele segue o RFC 4122 — a esmagadora maioria dos GUIDs que você encontra no dia a dia usa essa variante.
Então da próxima vez que você vir um GUID, basta dar uma olhada rápida no primeiro dígito do terceiro bloco para saber se ele foi gerado como v1, v4 ou v7. Isso é muito mais útil do que apenas olhar para ele sem entender nada.
Quais são as versões do GUID?
A especificação UUID define várias versões, mas na prática apenas três são realmente usadas:
v1: Baseada em tempo e endereço MAC
O GUID v1 é gerado combinando o timestamp atual (com precisão de 100 nanosegundos) com o endereço MAC da placa de rede.
Vantagem: naturalmente ordenado, segue a ordem de geração. Desvantagem: expõe o momento da geração e o endereço MAC é uma informação de hardware — isso é um problema sério de privacidade e segurança. Um invasor que obtiver um GUID v1 pode deduzir o endereço MAC da sua placa de rede e o horário exato em que foi gerado.
Por isso, quase ninguém usa v1 hoje em dia, mas você ainda pode encontrá-lo em sistemas antigos.
v4: Puramente aleatório
O v4 é a versão mais comum atualmente. Com exceção dos bits de versão e variante, que são fixos, os outros 122 bits são preenchidos inteiramente por números aleatórios.
Sem timestamp, sem informação de hardware, contando apenas com a aleatoriedade para garantir a unicidade. Simples e direto, mas extremamente eficaz.
Quando você usa new Guid(), uuid.uuid4() ou crypto.randomUUID() nos seus projetos, o resultado quase sempre será v4.
v7: A nova estrela com ordenação temporal
O v7 é uma versão que só foi oficialmente incorporada ao padrão em 2024. Ele reserva os primeiros 48 bits para armazenar um timestamp em milissegundos e preenche o restante com números aleatórios.
Por que criar o v7? Porque o v4, embora excelente, é completamente aleatório e não pode ser ordenado por tempo. Para bancos de dados, isso é um problema:
- Quando o GUID é usado como chave primária e a versão é v4, a ordem de inserção não coincide com a ordem do índice, causando divisões frequentes na árvore B+ e degradando a performance de escrita.
- O v7, como a primeira parte é um timestamp, é naturalmente crescente no tempo, fazendo com que a ordem de inserção e a ordem do índice fiquem praticamente alinhadas, resultando em uma performance de escrita muito melhor.
Então, se o seu projeto usa GUID como chave primária de banco de dados, o v7 é uma escolha superior ao v4.
"O GUID não se repete" — mas aquela piada da internet está errada
Sempre que se fala que o GUID é único, alguém pergunta: e se ele se repetir?
Circula na internet uma afirmação: "A probabilidade de colisão do GUID v4 é tão pequena que, gerando 1 bilhão por segundo durante 1 bilhão de anos, ainda não haveria repetição." Parece reconfortante, né?
Mas essa afirmação está matematicamente errada.
Onde está o erro? O paradoxo do aniversário
Ela cai em uma armadilha clássica da intuição — o paradoxo do aniversário.
Talvez você já conheça esse problema: quantas pessoas precisam estar em uma sala para que a probabilidade de "duas pessoas fazerem aniversário no mesmo dia" ultrapasse 50%? A intuição diz que, com 365 dias no ano, seriam necessárias cerca de 180 pessoas, certo?
Na verdade, bastam 23 pessoas.
O motivo é que não estamos verificando se "uma pessoa específica faz aniversário em uma data específica", mas sim se "entre todas as pessoas, qualquer par delas compartilha o mesmo aniversário". Conforme o número de pessoas cresce, o número de combinações possíveis entre pares aumenta rapidamente.
Com GUIDs é a mesma lógica. Não estamos olhando para "um GUID específico pode coincidir com outro", mas sim "entre todos os GUIDs já gerados, algum par pode ser idêntico". O número de combinações cresce na razão quadrática do total, muito mais rápido do que a intuição sugere.
A verdadeira linha do tempo de colisões
Se gerarmos estritamente 1 bilhão de GUIDs por segundo, sem parar, e recalcularmos usando a fórmula do paradoxo do aniversário:
- 10 anos: probabilidade de colisão aproximadamente 1%
- 33 anos: probabilidade de colisão aproximadamente 10%
- 86 anos: probabilidade de colisão aproximadamente 50%
E 1 bilhão de anos? Nesse ponto, o número de colisões já seria incalculável.
Então posso ficar tranquilo?
Com certeza. O cenário acima assume "1 bilhão por segundo, sem parar" — na realidade, nenhuma aplicação atinge esse volume.
Se ao longo de toda a vida do seu sistema você gerar um total de 100 trilhões de GUIDs (o que já é um número astronomicamente exagerado), a probabilidade de colisão ainda será de apenas 1 em 1 bilhão.
Pode usar sem preocupação.
As frustrações do dia a dia com GUIDs
Entendida a teoria, vamos voltar à prática. O verdadeiro problema dos desenvolvedores ao lidar com GUIDs não é "será que vai se repetir?", mas sim:
Geração inconveniente
O guidgen.exe que vem com o Windows só gera um de cada vez. No terminal? O PowerShell até consegue: [guid]::NewGuid(). Mas e se você precisar gerar 50 de uma vez para dados de teste? Vai ter que escrever um script.
Formatos caóticos
O mesmo GUID pode parecer muito diferente dependendo da linguagem e do contexto:
6B29FC40-CA47-1067-B31D-00DD010662DA // Formato padrão
6B29FC40CA471067B31D00DD010662DA // Sem hífens
{6B29FC40-CA47-1067-B31D-00DD010662DA} // Com chaves (C#/COM)
urn:uuid:6B29FC40-CA47-1067-B31D-00DD010662DA // URN
aKXwnELGRYeysdADQClibto= // Base64Você copiou um GUID do log e precisa converter para o formato de macro DEFINE_GUID no código C? Vai ter que mudar à mão.
Extração trabalhosa
O arquivo de log está cheio de GUIDs espalhados e você quer encontrá-los todos? Vai varrer com os olhos ou escrever uma expressão regular?
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}Funciona, mas você precisa consultá-la toda vez para não errar.
Resolva tudo isso com o QuickGUID
Todas essas frustrações podem ser resolvidas em uma única ferramenta. O QuickGUID é um kit de ferramentas GUID nativo para Windows:
- Geração em lote de v4 ou v7, até 1.000 de uma vez
- Mais de 10 formatos com conversão em tempo real: padrão, sem hífens, com chaves, Base64, array de bytes em C, macro
DEFINE_GUID... todos com pré-visualização instantânea - Extração inteligente: cole um log ou código-fonte e ele identifica automaticamente todos os GUIDs, convertendo-os em lote
- Decorador em tempo real: aspas, sufixos, maiúsculas/minúsculas — altere globalmente e copie pronto para uso
Totalmente gratuito, 100% offline.
Considerações finais
O GUID é uma das infraestruturas mais discretas e ao mesmo tempo mais confiáveis do desenvolvimento de software. Com apenas 128 bits, sem necessidade de coordenação central e sem precisar de internet, ele consegue garantir unicidade em escala global. É um design que já dura mais de 30 anos e continua sendo uma das melhores práticas para identificadores em sistemas distribuídos.
Espero que este artigo tenha ajudado você a entender os "porquês" por trás dos GUIDs.