UUID: o que é, para que serve e as diferenças entre as versões
Atualizado em 2026-08-25
O que é um UUID
UUID significa Universally Unique Identifier — identificador único universal. É um número de 128 bits, normalmente escrito como 36 caracteres em cinco grupos separados por hífens:
550e8400-e29b-41d4-a716-446655440000
O formato é sempre 8-4-4-12 caracteres hexadecimais. O termo GUID (Globally Unique Identifier) aparece em documentação da Microsoft e significa a mesma coisa.
A promessa do UUID é forte: qualquer pessoa, em qualquer máquina, a qualquer momento, pode gerar um identificador sem consultar ninguém e ainda assim ter certeza prática de que ninguém no mundo vai gerar o mesmo. Não existe servidor central, não existe coordenação, não existe fila.
Por que isso importa
Imagine um sistema com três servidores gravando pedidos no mesmo banco. Se cada um usar um contador próprio (1, 2, 3...), eles vão colidir imediatamente. A solução tradicional é ter um único ponto que distribui os números — o que cria um gargalo e um ponto de falha.
Com UUID, cada servidor gera o identificador localmente, sem perguntar nada a ninguém, e a colisão simplesmente não acontece. Esse é o problema que o formato resolve.
O mesmo vale para aplicativos que funcionam offline: o celular pode criar registros sem conexão e sincronizar depois, sem risco de que o identificador escolhido já pertença a outro registro.
As versões
Existem várias versões de UUID, cada uma com um método de geração diferente.
Versão 4 — aleatória
É a mais usada, de longe. Dos 128 bits, 6 são reservados para indicar a versão e a variante; os outros 122 são aleatórios.
É a escolha padrão quando você quer um identificador imprevisível e não precisa que ele carregue nenhuma informação. O gerador de UUID produz UUIDs v4 usando o gerador criptográfico do navegador, o mesmo mecanismo usado para chaves de segurança.
Versão 7 — ordenável por tempo
É a mais recente e vem ganhando espaço rapidamente. Os primeiros 48 bits guardam o instante de criação em milissegundos, e o restante é aleatório.
Isso dá uma propriedade valiosa: UUIDs v7 gerados em sequência ficam em ordem crescente quando ordenados como texto. Para bancos de dados, isso faz diferença real de desempenho, porque índices lidam muito melhor com inserções ordenadas do que com valores espalhados aleatoriamente.
A contrapartida é que o v7 revela o momento da criação — o que pode ser exatamente o que você quer, ou uma vazamento de informação indesejado.
Versão 1 — tempo e endereço MAC
A versão original combinava o relógio com o endereço MAC da placa de rede. Funcionava, mas expunha o identificador físico da máquina, o que virou preocupação de privacidade. Hoje é considerada legado; se você precisa de ordenação temporal, use v7.
Versões 3 e 5 — determinísticas
Geram o UUID a partir de um nome e de um namespace, aplicando uma função de hash (MD5 na v3, SHA-1 na v5). A mesma entrada produz sempre o mesmo UUID.
São úteis quando você precisa derivar um identificador estável a partir de algo que já existe — transformar uma URL num UUID previsível, por exemplo.
Resumo
| Versão | Base | Ordenável | Uso típico |
|---|---|---|---|
| v1 | Tempo + MAC | Parcialmente | Legado |
| v3 | Hash MD5 | Não | Determinístico |
| v4 | Aleatório | Não | Uso geral |
| v5 | Hash SHA-1 | Não | Determinístico |
| v7 | Tempo + aleatório | Sim | Chave de banco moderna |
A chance de colisão é realmente desprezível?
Sim, e vale entender a ordem de grandeza.
Com 122 bits aleatórios, o número de UUIDs v4 possíveis é cerca de 5,3 × 10³⁶. Para efeito de comparação, estima-se que o universo observável tenha por volta de 10⁸⁰ átomos, e que existam cerca de 10⁵⁰ átomos na Terra.
Aplicando o paradoxo do aniversário, seria preciso gerar aproximadamente 2,7 × 10¹⁸ UUIDs para ter 50% de chance de uma única colisão. Gerando um bilhão de UUIDs por segundo, isso levaria cerca de 85 anos.
Na prática, a probabilidade de colisão é muito menor do que a de uma falha de disco, de um erro de memória por raio cósmico ou de o data center inteiro pegar fogo. Não é um risco que mereça código defensivo.
O único cuidado real é a qualidade do gerador aleatório. Um UUID v4 gerado com um gerador fraco ou mal semeado perde toda essa garantia. Por isso a recomendação é sempre usar o gerador criptográfico da plataforma, nunca uma função de números pseudoaleatórios comum.
UUID ou ID sequencial?
Essa é a decisão que mais gera debate. Não existe resposta universal.
A favor do UUID
- Pode ser gerado em qualquer lugar, sem coordenação.
- Não revela volume de negócio. Um ID sequencial na URL entrega quantos pedidos a empresa já processou, e permite que alguém tente adivinhar os IDs vizinhos.
- Facilita mesclar dados de bases diferentes sem conflito.
- Funciona bem com criação offline e sincronização posterior.
A favor do ID sequencial
- Ocupa muito menos espaço: 4 ou 8 bytes contra 16.
- É legível e fácil de comunicar por telefone. Ninguém dita um UUID em voz alta.
- Índices de banco ficam menores e mais rápidos.
- Ordenação natural por criação, sem esforço.
Um caminho intermediário comum
Muitos sistemas usam os dois: um ID sequencial interno, usado como chave primária e nos índices, e um UUID público, exposto em URLs e APIs. Assim se ganha o desempenho de um e a opacidade do outro.
Se o incômodo é só o tamanho na URL, dá para representar os mesmos 128 bits em base 62 ou base 64, reduzindo de 36 para cerca de 22 caracteres. O conversor de base numérica ajuda a visualizar como a mudança de base encurta a representação sem perder informação.
UUID não é senha
Vale um alerta importante. Um UUID v4 tem 122 bits de aleatoriedade, o que é bastante — mas ele não foi projetado como segredo, e vários hábitos comuns anulam essa proteção:
- UUIDs aparecem em URLs, e URLs vão parar em logs de servidor, histórico de navegador, cabeçalhos de referência e ferramentas de análise.
- UUIDs costumam ser tratados como identificadores públicos, então acabam expostos em respostas de API e interfaces.
- Não há expiração, revogação nem rotação embutidas.
Se você precisa de um segredo — token de acesso, link de redefinição de senha, chave de API — use um mecanismo pensado para isso, com expiração e revogação. Para senhas de uso pessoal, o gerador de senhas é a ferramenta adequada, e o guia sobre senhas seguras explica o raciocínio por trás do comprimento.
Onde você já viu UUIDs
- Identificadores de sessão e de dispositivo.
- Nomes de arquivos em serviços de armazenamento, para evitar colisão de nomes.
- Chaves de registros em bancos distribuídos.
- Identificadores de transação em sistemas de pagamento.
- Chaves de licença de software.
- Identificadores de recursos em APIs REST.
- Rastreamento de requisições entre microsserviços.
Perguntas frequentes
UUID diferencia maiúsculas de minúsculas? Não. 550E8400 e 550e8400 representam o mesmo valor. A convenção é escrever em minúsculas.
Preciso guardar os hífens? Não são obrigatórios para o valor em si, mas o formato com hífens é o padrão para exibição e intercâmbio. Bancos que têm tipo próprio para UUID guardam os 16 bytes e formatam na leitura.
Posso gerar UUID sem conexão com a internet? Sim, sempre. A geração é local por definição — é justamente esse o ponto do formato.
Existe UUID v2? Existe, mas é uma variante muito específica e praticamente não usada. Na prática, o mundo trabalha com v4 e, cada vez mais, v7.
Como sei qual é a versão de um UUID? Olhe o primeiro caractere do terceiro grupo. Em 550e8400-e29b-41d4-a716-446655440000, o 4 indica versão 4.
Ferramentas relacionadas
- Gerador de UUID
Gere identificadores únicos universais (UUID v4) para usar em bancos de dados e sistemas.
- Gerador de Senhas
Gere senhas aleatórias e fortes, com controle sobre tamanho e tipos de caractere.
- Conversor de Base Numérica
Converta números entre binário, octal, decimal e hexadecimal instantaneamente.