← Todas as ferramentas

Gerador de UUID (v4 GUID)

Gere UUIDs (GUIDs) v4 aleatórios na hora pelo navegador. Saiba o que é um UUID de 128 bits, como as versões diferem, a chance de colisão e quando usá-los.

O que é, de fato, um UUID

Um UUID, sigla em inglês para Identificador Universalmente Único, é um valor de 128 bits usado para rotular algo sem pedir permissão a ninguém antes. Você também pode vê-lo chamado de GUID, ou Identificador Globalmente Único, que é simplesmente o nome que a Microsoft deu à mesma ideia dentro do Windows e do mundo .NET. Os dois termos descrevem o mesmo número de 128 bits em quase todos os casos que importam, então, quando um colega diz GUID e você diz UUID, vocês quase sempre estão falando exatamente da mesma coisa.

Esses 128 bits são normalmente escritos como 32 dígitos hexadecimais divididos em cinco grupos por hífens, em um padrão 8-4-4-12. Um valor típico se parece com 123e4567-e89b-12d3-a456-426614174000. Os hífens não têm significado próprio; existem puramente para que uma pessoa consiga ler o valor sem se perder. Cada caractere é um dígito hexadecimal de 0 a f, e é por isso que um UUID parece mais denso do que um número comum, mesmo sendo, no fundo, apenas um inteiro muito grande.

Token hexadecimal abstrato e brilhante representando um identificador único de 128 bits sobre fundo índigo escuro
Um UUID é um único número de 128 bits, escrito como 32 dígitos hexadecimais em cinco grupos separados por hífen.

Versões, e por que a v4 vence

O padrão define várias versões, e elas diferem em como os bits são preenchidos. A versão 1 é baseada em tempo: ela entrelaça o carimbo de data e hora atual e o endereço MAC de rede da máquina. Isso torna os valores v1 ordenáveis por momento de criação, mas também revela informações sobre onde e mais ou menos quando foram feitos, o que nem sempre é bem-vindo. As versões 3 e 5 são baseadas em nome, aplicando um hash a um namespace mais um nome, de modo que a mesma entrada sempre produz o mesmo identificador.

A versão 4 segue um caminho totalmente diferente. É quase pura aleatoriedade. Dos 128 bits, seis são reservados para marcar a versão e a variante, deixando 122 bits a serem preenchidos com dados aleatórios. Não há carimbo de tempo, nem endereço MAC, nem namespace, apenas ruído. É exatamente por isso que a maioria dos geradores, incluindo este, produz v4 por padrão. Ele não revela nada sobre o dispositivo nem sobre o momento da criação, e não exige nenhuma coordenação entre as partes que o criam. A ferramenta desta página roda inteiramente no seu navegador, então os valores aleatórios nunca saem da sua máquina.

Quão improvável é, de fato, uma colisão

A preocupação razoável é que dois UUIDs aleatórios possam um dia ser idênticos. Com 122 bits aleatórios, o espaço de valores v4 possíveis é 2 elevado a 122, que é aproximadamente 5,3 seguido de 36 zeros. Para colocar isso em termos humanos, você precisaria gerar bilhões de UUIDs por segundo durante muitas décadas antes que as chances de uma única duplicata subissem a algo mensurável. O próprio padrão descreve a chance de um choque como próxima o suficiente de zero para ser desprezível. Na prática, as equipes tratam a v4 como única e seguem em frente, e fazem isso com razão.

Inúmeras chaves brilhantes e distintas flutuando em um vasto espaço escuro sem duplicatas, com toques de ciano e dourado
O conjunto de valores v4 possíveis é tão vasto que colisões são efetivamente impossíveis.

Onde os desenvolvedores recorrem a eles

Como a unicidade não precisa de autoridade central, os UUIDs brilham em lugares onde a coordenação é cara ou impossível. Eles se encaixam naturalmente como chaves primárias de banco de dados, especialmente quando vários serviços inserem linhas e você não pode pausar para perguntar a um contador compartilhado qual é o próximo número. Em sistemas distribuídos, dois nós em lados opostos do planeta podem ambos cunhar identificadores no mesmo instante sem nunca colidir. Eles também alimentam chaves de idempotência de API, em que um cliente anexa um UUID a uma requisição para que o servidor possa ignorar com segurança uma duplicata se a rede tentar novamente. Tokens de sessão, nomes de arquivo, IDs de evento e chaves de mensagem todos se apoiam na mesma propriedade.

UUID versus IDs de incremento automático

A alternativa clássica é o inteiro de incremento automático: 1, 2, 3 e assim por diante. IDs sequenciais são compactos, ordenam-se naturalmente e são fáceis de ler, mas têm desvantagens reais. Eles revelam quantos registros existem e deixam estranhos adivinharem valores vizinhos, e forçam toda inserção a passar por um único contador, que vira um gargalo quando você fragmenta um banco de dados ou mescla dados de muitas fontes. Os UUIDs resolvem esses problemas ao permitir que qualquer parte gere uma chave de forma independente e ao não entregar nada sobre volume ou ordem. A troca é tamanho e um pouco menos de localidade nos índices. Para sistemas que escalam horizontalmente ou que precisam esconder seu funcionamento interno, essa troca costuma valer a pena. Você pode explorar este e utilitários semelhantes na nossa coleção de todos os geradores, ou navegar pelo conjunto mais amplo de ferramentas para desenvolvedores em busca de blocos de construção relacionados.

Perguntas frequentes

Um GUID é o mesmo que um UUID?

Para fins do dia a dia, sim. GUID é o nome da Microsoft para o mesmo identificador de 128 bits. A única diferença real é a ordem dos bytes na forma binária bruta em alguns sistemas Windows; em forma de string, eles são idênticos e intercambiáveis.

Qual versão de UUID esta ferramenta gera?

Ela gera a versão 4, a variante aleatória. Dos seus 128 bits, 122 são preenchidos com dados aleatórios, o que torna cada valor extremamente improvável de se repetir e significa que ele não carrega carimbo de tempo nem informações do dispositivo.

Dois UUIDs podem alguma vez ser iguais?

Em teoria, a probabilidade não é exatamente zero, mas com cerca de 5,3 vezes 10 elevado a 36 valores v4 possíveis ela é tão pequena que é tratada como desprezível. Você teria que gerar quantidades astronômicas deles antes de um choque se tornar provável.

Por que usar um UUID em vez de um número de incremento automático?

Os UUIDs podem ser criados de forma independente por qualquer serviço sem um contador compartilhado, não revelam contagens nem ordem de registros e tornam indolor a mesclagem de dados de muitas fontes. Os IDs de incremento automático são menores, mas viram um gargalo e vazam informações em escala.

Os UUIDs são gerados em um servidor?

Não. Esta ferramenta roda inteiramente no seu navegador, então os valores aleatórios são produzidos localmente e nunca enviados a lugar nenhum. Isso a torna segura para chaves e tokens que você pretende manter privados.

O que significa o padrão de hífens?

O agrupamento 8-4-4-4-12 é apenas uma convenção de legibilidade. Os hífens não carregam dados; eles dividem os 32 dígitos hexadecimais em blocos para que as pessoas consigam ler e comparar os valores com mais facilidade.