Como usar o gerador de UUID
- Escolha a versão: v4 (aleatória) ou v7 (ordenada por tempo).
- Defina quantos UUIDs você precisa, de um só até uma lista em massa.
- Se quiser, mude para maiúsculas ou remova os hifens.
- Copie um único valor ou a lista inteira.
Os UUIDs são gerados no seu navegador usando o gerador de números aleatórios criptograficamente seguro dele. Eles nunca são enviados nem armazenados nos nossos servidores, então ninguém mais sabe quais identificadores você criou.
O que é um UUID?
Um UUID (Universally Unique Identifier, identificador universalmente único) é um valor de 128 bits que pode ser gerado de forma independente em qualquer máquina, com uma chance desprezível de coincidir com qualquer outro. Não é preciso um registro central nem uma consulta ao banco de dados, o que torna os UUIDs ideais para sistemas distribuídos, clientes offline e para juntar dados de várias fontes. Eles também são uma escolha comum para IDs de requisição e para a claim jti dentro de tokens que você pode inspecionar com o decodificador de JWT. GUID (Globally Unique Identifier) é o nome que a Microsoft dá à mesma coisa.
Os UUIDs são escritos como 32 dígitos hexadecimais em cinco grupos separados por hifens, no padrão 8-4-4-4-12 (36 caracteres no total):
f47ac10b-58cc-4372-a567-0e02b2c3d479
^ ^
| variante (8, 9, a ou b)
versão (4)
O primeiro dígito do terceiro grupo é a versão; o primeiro dígito do quarto grupo codifica a variante. A especificação atual é a RFC 9562 (2024), que substituiu a RFC 4122 e acrescentou as versões 6, 7 e 8.
Versão 4 x versão 7
| UUID v4 | UUID v7 | |
|---|---|---|
| Conteúdo | 122 bits aleatórios (6 bits fixos para versão e variante) | Timestamp Unix de 48 bits em milissegundos, seguido de bits aleatórios |
| Ordenação | Aleatória | Aproximadamente cronológica |
| Revela | Nada | O momento em que foi criado |
| Melhor para | Tokens, IDs públicos, uso geral | Chaves primárias de banco de dados, logs de eventos |
Por que o v7 é melhor para índices de banco de dados
As chaves primárias normalmente ficam guardadas num índice B-tree. Os valores v4 aleatórios caem em posições aleatórias, então cada inserção mexe numa página diferente, o que provoca divisões de página, pouca localidade de cache e inchaço do índice em tabelas grandes. Como os UUIDs v7 começam com um timestamp, os novos valores entram perto do fim do índice, de modo parecido com um inteiro de autoincremento, mantendo as vantagens de IDs globalmente únicos gerados no cliente.
Erros comuns
- Guardar UUIDs como texto. Uma string de 36 caracteres ocupa mais que o dobro do espaço dos 16 bytes brutos. Use um tipo
uuidnativo (PostgreSQL) ouBINARY(16)(MySQL). - Usar UUIDs como segredos. Os valores v4 são difíceis de adivinhar, mas são identificadores, não credenciais. Os valores v7 expõem o momento da criação e são parcialmente previsíveis. Use um token aleatório próprio para redefinição de senha e chaves de API.
- Comparações que diferenciam maiúsculas e minúsculas. A RFC 9562 especifica saída em minúsculas, mas exige que a entrada seja aceita tanto em maiúsculas quanto em minúsculas. Normalize antes de comparar strings.
- Fontes aleatórias fracas. Gerar UUIDs v4 com
Math.random()compromete a sua unicidade. Use um gerador criptograficamente seguro.
Como gerar UUIDs no código
// JavaScript (browsers and Node.js)
crypto.randomUUID(); // v4
# Python
import uuid
uuid.uuid4()
uuid.uuid7() # Python 3.14+
-- PostgreSQL
SELECT gen_random_uuid(); -- v4 (PostgreSQL 13+)
SELECT uuidv7(); -- PostgreSQL 18+
// Java
java.util.UUID.randomUUID();
// C# / .NET
Guid.NewGuid(); // v4
Guid.CreateVersion7(); // .NET 9+
# Shell (Linux, macOS)
uuidgen
Perguntas frequentes
Dois UUIDs podem ser iguais?
Na teoria, sim; na prática, não. Com 122 bits aleatórios, o número de valores v4 possíveis é tão grande que você precisaria gerar bilhões de UUIDs por segundo durante muitas décadas até que uma única duplicata se tornasse provável. Colisões em sistemas reais quase sempre vêm de um gerador de números aleatórios com defeito ou de dados copiados, não do acaso.
Qual é a diferença entre UUID e GUID?
Na prática, nenhuma. GUID é o termo usado nas tecnologias da Microsoft; o formato e o tamanho são os mesmos.
Devo usar v4 ou v7?
Use v7 para chaves primárias de banco de dados e qualquer coisa que você queira ordenar pela data de criação. Use v4 quando o ID não deve revelar nada, como identificadores expostos em URLs públicas.
O UUID nil é válido?
Sim. 00000000-0000-0000-0000-000000000000 é o UUID nil especial, e a RFC 9562 também define um UUID máximo, com todos os dígitos f. Os dois costumam ser usados como marcadores de posição.
Atualizado