UUIDs são o formato de identificação padrão para bancos de dados, APIs e sistemas distribuídos. Seja para popular um banco de dados de teste, gerar chaves de API ou criar chaves primárias para um novo schema, você precisa de uma maneira de gerá-los rapidamente. Um gerador de UUID é uma dessas ferramentas que todo desenvolvedor usa ocasionalmente.
A pergunta em 2026 não é mais “qual versão de UUID” — é “v4 ou v7?”
UUID v4 vs v7: qual usar
UUID v4 é puramente aleatório. 122 bits aleatórios, 6 bits para variante e versão. Sem padrão, sem correlação temporal, sem como adivinhar o próximo ID.
Use v4 para:
- Tokens de sessão
- Links de redefinição de senha
- Chaves de API distribuídas a terceiros
- Qualquer coisa onde o ID em si é a fronteira de segurança
UUID v7 é ordenado por tempo. Os primeiros 48 bits são um timestamp Unix com precisão de milissegundos, seguidos por bits aleatórios. UUIDs gerados no mesmo milissegundo são ordenados na ordem de inserção.
Use v7 para:
- Chaves primárias de banco de dados (4x mais rápidas que v4 no MySQL)
- IDs de log de eventos
- IDs de mensagens em filas de mensagens
- Identificadores de sistemas distribuídos onde você quer ordenação aproximada
O benchmark do PlanetScale (2024) mostrou UUID v7 com inserções de 18.000/seg vs UUID v4 com 4.500/seg no MySQL 8. A diferença de 4x vem da indexação B-tree: inserções aleatórias v4 causam divisões de páginas, inserções sequenciais v7 vão para o lado direito da árvore.
Como gerar UUIDs no navegador
A maneira mais rápida:
crypto.randomUUID() // → "550e8400-e29b-41d4-a716-446655440000"
Isso retorna um UUID v4. Para v7, você precisa de um pequeno polyfill combinando crypto.getRandomValues com um prefixo de timestamp.
O gerador de UUID no DevSpeedTools produz ambos v4 e v7 no navegador usando crypto.getRandomValues diretamente. Gere um UUID ou gere 100 em lote — sem instalação, sem servidor, sem upload.
Geração de UUID em lote
Para dados de teste, você frequentemente precisa de centenas ou milhares de UUIDs. O navegador pode gerar UUIDs v4 a milhões por segundo usando crypto.randomUUID() em um loop. Para v7, o componente de timestamp significa que você não pode gerar mais de um por milissegundo com unicidade garantida — mas o sufixo aleatório oferece resistência suficiente a colisões para propósitos práticos.
Variações de formato de UUID
Diferentes sistemas esperam diferentes formatos de UUID:
| Formato | Exemplo | Caso de uso |
|---|---|---|
| Padrão | 550e8400-e29b-41d4-a716-446655440000 |
A maioria dos bancos de dados e APIs |
| Sem traços | 550e8400e29b41d4a716446655440000 |
Algumas APIs, parâmetros de URL |
| Maiúsculas | 550E8400-E29B-41D4-A716-446655440000 |
Sistemas legados |
| Chaves | {550e8400-e29b-41d4-a716-446655440000} |
GUIDs da Microsoft |
O formato padrão com traços é o mais seguro como padrão. A maioria dos bancos de dados e ORMs aceita todas as variantes.
Erros comuns de UUID
- Usar v4 para chaves primárias de banco de dados. UUIDs aleatórios prejudicam o desempenho de escrita em escala. Use v7 para novos schemas.
- Assumir que UUIDs são sequenciais. v4 é aleatório. v7 é ordenado por tempo mas não sequencial dentro de um milissegundo.
- Armazenar UUIDs como strings. UUIDs são 16 bytes binários. Armazenar como string de 36 caracteres desperdiça 20 bytes por linha e torna os índices mais lentos. Use o tipo UUID nativo no Postgres, MySQL 8+ ou SQLite com extensões.
- Esquecer os bits de variante. UUIDs têm bits de variante que afetam o primeiro dígito hex do terceiro grupo. Não os remova.
Gere UUIDs agora
Se você precisa de um UUID agora, use um gerador baseado no navegador. O gerador de UUID no DevSpeedTools produz UUIDs v4 e v7 instantaneamente, com cópia para área de transferência e geração em lote. Sem upload, sem conta, sem servidor — seus UUIDs são gerados localmente usando crypto.getRandomValues.