O que é um UUID
UUID (Universally Unique Identifier) é um identificador de 128 bits pensado para ser único sem depender de um servidor central. Dois sistemas diferentes, em lugares diferentes, podem gerar UUIDs ao mesmo tempo sem combinar nada entre si, e a chance de repetição é desprezível. Por isso ele é usado como chave primária em bancos de dados distribuídos, identificador de requisições em APIs, nome de arquivos enviados por usuários, ID de sessões, mensagens em filas e eventos em sistemas de log.
Na forma de texto, o UUID tem 32 dígitos hexadecimais divididos em cinco grupos por hífens (8-4-4-4-12), como 550e8400-e29b-41d4-a716-446655440000. O formato é padronizado pela RFC 9562, publicada pela IETF em 2024, que substituiu a antiga RFC 4122. A Microsoft chama o mesmo formato de GUID.
Como usar o gerador
- Escolha a versão: v4 para um identificador puramente aleatório, v7 para um identificador que carrega a data de criação e fica em ordem.
- Informe a quantidade (até 1.000). Cada UUID sai numa linha.
- Se o seu sistema exigir, marque Maiúsculas (comum em ambientes Microsoft) ou Sem hífens (útil para nomes de arquivo e colunas
CHAR(32)). - Copie o resultado ou baixe um arquivo
.txt.
Anatomia de um UUID
Dois campos fixos aparecem em todo UUID moderno:
- Versão: o primeiro caractere do terceiro grupo. Em
xxxxxxxx-xxxx-4xxx-…a versão é 4; num v7, esse caractere é 7. - Variante: o primeiro caractere do quarto grupo é sempre
8,9,aoubpara a variante definida pela RFC.
Os outros bits dependem da versão.
UUID v4: aleatório
Tem 122 bits aleatórios. É a versão mais usada e a opção padrão quando você só precisa de um identificador único e opaco. O gerador usa crypto.randomUUID(), disponível nos navegadores atuais, com uma alternativa baseada em crypto.getRandomValues para navegadores mais antigos. As duas fontes são criptograficamente seguras.
O número de combinações é tão grande que, para ter 50% de chance de uma única colisão, seria preciso gerar por volta de 2,7 quintilhões de UUIDs v4. Em qualquer sistema real, o risco é zero para fins práticos.
UUID v7: ordenado por tempo
O v7 foi criado para resolver um problema do v4 em bancos de dados. Como os UUIDs v4 são aleatórios, cada inserção cai num ponto qualquer do índice, o que causa fragmentação e mais escrita em disco em índices B-tree (PostgreSQL, MySQL, SQL Server). No v7, os primeiros 48 bits são o horário Unix em milissegundos, seguidos de bits aleatórios. Resultado: UUIDs gerados depois ficam "maiores" que os anteriores, e o banco insere sempre no fim do índice.
| Bits | Conteúdo no UUID v7 |
|---|---|
| 48 | Timestamp Unix em milissegundos |
| 4 | Versão (7) |
| 12 | Aleatório ou contador dentro do mesmo milissegundo |
| 2 | Variante |
| 62 | Aleatório |
Quando você gera um lote, vários UUIDs caem no mesmo milissegundo. Para que continuem em ordem, o gerador usa os 12 bits após a versão como contador, como prevê a RFC 9562. Os 12 primeiros dígitos hexadecimais de um UUID v7 (desconsiderando o hífen) guardam o horário de criação; UUIDs gerados em 2026 começam com 019b a 01a2. A ferramenta mostra esse horário abaixo do resultado.
Qual versão escolher
- Chave primária em banco relacional: v7. Mantém a vantagem de gerar IDs no cliente e evita fragmentação.
- Identificador exposto publicamente (links de compartilhamento, tokens em URLs): v4, porque o v7 revela quando o registro foi criado.
- Correlação de logs e eventos: v7 facilita ordenar por tempo sem uma coluna extra.
- Compatibilidade com sistemas antigos: v4 é aceito em qualquer lugar; algumas bibliotecas antigas ainda não reconhecem a versão 7, embora o formato de texto seja o mesmo.
Cuidados
UUID não é senha nem token de segurança: ele é único, mas não foi feito para ser secreto, e o v7 é parcialmente previsível. Para credenciais, use o gerador de senha. Ao armazenar, prefira tipos nativos (uuid no PostgreSQL, BINARY(16) no MySQL) em vez de texto, que ocupa mais que o dobro do espaço. Para massas de dados de teste com documentos brasileiros, combine com o gerador de pessoas e o gerador de CPF.