Gerador de UUID

Gerador de UUID

Gere qualquer versão de UUID instantaneamente no navegador — v4 (aleatório), v7 (ordenado por tempo), v1, v3, v5, v6. Compatível com RFC 4122 e RFC 9562.

Atualizado em abril de 2026

CONFIGURAÇÃO
Versão UUID

v7 usa timestamp Unix ms como prefixo — UUIDs já ordenam por tempo de criação. Elimina a necessidade de coluna sequence separada para performance de inserção no banco.

Geração em Lote LIMIT: 100
Dica Rápida

Use Ctrl+G para gerar instantaneamente. · Shift+Enter para copiar.

RESULTADO GERADO

Pronto para uso

Clique em "Gerar Novo" para criar um UUID

Gerador de UUID Online (v4, v7, v1, v3, v5, v6) | UUID Generator RFC 4122 / RFC 9562

Gere qualquer versão de UUID instantaneamente no navegador — sem servidor, sem cadastro. Funciona como gerador de GUID também. Geração em lote de até 100. Copie com um clique.

Anatomia de um UUID

Todo UUID segue o padrão xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. Os dígitos destacados abaixo revelam o que cada versão codifica.

Versão 4 — Aleatório

550e8400-e29b-41d4-a716-446655440000

4  Dígito de versão — todos os demais bits são aleatórios.

Versão 7 — Timestamp Unix ms + Aleatório (recomendado)

0191d2a0-1234-7a3f-9c2d-4f8e1b5a6c3d

Timestamp Unix ms (48 bits)  ·  7 Dígito de versão  ·  sufixo aleatório

Versão 1 — Timestamp Gregoriano (legado)

6ba7b810-9dad-11d1-80b4-00c04fd430c8

Timestamp distribuído em 3 campos (time_low · time_mid · time_hi)  ·  1 Dígito de versão

Como Gerar um UUID

  1. Escolha a versão — Versão 7 é o padrão recomendado. Use Versão 4 para aleatoriedade pura, ou v3/v5 para IDs determinísticos baseados em nome.
  2. Defina a quantidade — Digite de 1 a 100 para gerar múltiplos UUIDs de uma vez (v3/v5 sempre geram apenas um).
  3. Clique em "Gerar Novo" — ou pressione Ctrl+G (⌘+G no Mac) para gerar instantaneamente.
  4. Copie o UUID — Clique diretamente no UUID, pressione Shift+Enter, ou use "Copiar Tudo".

Por Que UUID v7 é o Padrão Moderno para Bancos de Dados

O UUID v7 codifica um timestamp Unix de 48 bits em milissegundos nos bits mais significativos do identificador. Essa única decisão de design tem impacto profundo na performance de bancos de dados:

Localidade no índice B-tree. Em PostgreSQL, MySQL e a maioria dos bancos SQL, as chaves primárias ficam armazenadas em um índice B-tree. Quando você insere linhas com UUIDs aleatórios (v4), cada nova linha cai em uma posição aleatória na árvore, causando page splits e cache misses por todo o índice. Com o v7, as novas linhas sempre são inseridas próximas ao final do índice (timestamp mais recente = valor mais alto), o que significa muito menos page splits e melhor aproveitamento do buffer cache.

Elimina a necessidade de coluna sequence separada. Um padrão comum com UUID v4 é usar uma coluna BIGSERIAL ou AUTO_INCREMENT adicional apenas para obter ordenação por inserção:

-- Com UUID v4 você frequentemente precisava disso:
id BIGSERIAL PRIMARY KEY,
uuid UUID UNIQUE NOT NULL DEFAULT gen_random_uuid()

O UUID v7 elimina esse padrão — o próprio UUID já é ordenado por tempo, então você pode usá-lo diretamente como chave primária sem custo de performance:

-- Com UUID v7 isso é suficiente:
id UUID PRIMARY KEY DEFAULT gen_uuid_v7()

v7 vs v1. O UUID v1 também embutia um timestamp, mas o distribuía em três campos não contíguos em little-endian, então a string não ordena cronologicamente. O UUID v7 coloca o timestamp completo nos bits iniciais, de modo que ordenação lexicográfica da string equivale à ordenação cronológica — sem tratamento especial.

v7 vs v6. O UUID v6 corrige o problema de ordenação do v1 reorganizando os campos do timestamp, mas ainda usa a época gregoriana (intervalos de 100 nanossegundos desde 1582). O UUID v7 usa a época Unix (milissegundos desde 1970), suportada nativamente por todas as linguagens e bancos de dados. O v7 é a escolha prática para projetos novos.

Comparação de Versões de UUID

Característica v1 v3 v4 v5 v6 v7
Algoritmo Timestamp gregoriano MD5 (por nome) Aleatório SHA-1 (por nome) Timestamp reordenado Timestamp Unix ms
RFC RFC 4122 RFC 4122 RFC 4122 RFC 4122 RFC 9562 RFC 9562
Entropia ~74 bits Determinístico 122 bits Determinístico ~74 bits ~74 bits + timestamp ms
Timestamp embutido Sim (embaralhado) Não Não Não Sim (ordenável) Sim (ordenável)
Performance de inserção Ruim (embaralhado) Ruim (aleatório) Boa Melhor
Privacidade Vaza horário de criação Sem metadados Sem metadados Sem metadados Vaza horário de criação Vaza horário de criação
Ideal para Sistemas legados IDs estáveis por nome Uso geral IDs estáveis por nome Registros ordenados Chaves primárias novas

O que é um UUID?

Um UUID (Universally Unique Identifier) é um rótulo de 128 bits padronizado pelo RFC 4122 (versões 1–5) e RFC 9562 (versões 6–8). É representado por 32 dígitos hexadecimais no formato xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, onde M indica a versão e N a variante. O GUID (Globally Unique Identifier) da Microsoft usa exatamente esse mesmo formato — UUID e GUID são intercambiáveis.

A probabilidade de colisão entre dois UUIDs v4 aleatórios é negligível: seriam necessários cerca de 2,71 quintilhões de UUIDs para atingir 50% de chance de duplicata. O UUID v7 adiciona um prefixo de timestamp em milissegundos, tornando colisões dentro do mesmo milissegundo praticamente impossíveis na prática.

Casos de Uso Comuns

  • Chave primária em novos sistemas — Use UUID v7. O prefixo de timestamp garante localidade no índice B-tree sem coluna sequence separada. Mesma unicidade global do v4, com o benefício de ordenação por inserção de um BIGSERIAL.
  • Chave primária em sistemas existentes com v4 — O UUID v4 funciona bem para sistemas existentes. Migrar para v7 vale a pena em tabelas de alta escrita com gargalos de performance.
  • Tokens de sessão e IDs de requisição — UUID v4 ou v7 para identificadores não adivinháveis com aleatoriedade total.
  • Chaves de idempotência em pagamentos — Envie um UUID com cada requisição de pagamento para que o backend rejeite duplicatas com segurança. Prática padrão no Stripe, Adyen e similares.
  • IDs determinísticos a partir de dados conhecidos — Use UUID v5 (SHA-1) quando precisar do mesmo UUID sempre para um dado namespace + nome, por exemplo para converter uma URL ou e-mail em um identificador estável.
  • Nomes de arquivos para uploads — Substitua o nome original do arquivo por um UUID antes de salvar no S3 ou GCS para evitar colisões de caminho e enumeração.
  • Correlation IDs em rastreamento distribuído — Anexe um UUID a cada entrada de log e propague-o entre serviços para reconstruir o fluxo completo de uma requisição.

Perguntas Frequentes

UUID e GUID são a mesma coisa?

Sim — GUID é o termo da Microsoft para o mesmo formato definido pelo RFC 4122. São totalmente intercambiáveis. Se você precisa de um gerador de GUID para .NET, SQL Server ou APIs Windows, esta ferramenta gera GUIDs válidos.

Devo usar UUID v7 em vez de auto-incremento como chave primária?

Para sistemas novos, sim. O UUID v7 oferece unicidade global (sem coordenação entre shards), ordenação cronológica e boa performance de inserção no B-tree — o melhor dos dois mundos entre um inteiro sequencial e um UUID aleatório. A única desvantagem é o tamanho levemente maior (16 bytes vs 8 do BIGINT).

Quando devo usar UUID v4?

Use v4 quando precisar de aleatoriedade máxima e não se importar com a ordem de inserção — por exemplo, tokens de sessão, API keys, ou identificadores avulsos onde o timestamp embutido no v7 seria uma preocupação de privacidade.

Quando devo usar UUID v3 ou v5?

Use v5 (SHA-1) quando precisar de um UUID determinístico a partir de um input conhecido, como gerar um ID estável a partir de uma URL ou e-mail. Use v3 (MD5) apenas para interoperar com sistemas que já utilizam v3; o SHA-1 é criptograficamente mais robusto.

Quando devo usar UUID v6?

O UUID v6 é um substituto direto do v1 com melhor ordenação. Prefira v7 para projetos novos; o v6 é mais útil ao migrar instalações existentes de v1 que precisam de UUIDs ordenáveis sem trocar a época.

É seguro gerar UUID no navegador para uso em produção?

Sim. Este gerador usa crypto.randomUUID() e crypto.getRandomValues(), que acessam o CSPRNG do sistema operacional — a mesma fonte de entropia que gera chaves TLS privadas. Toda a geração acontece localmente no seu navegador; nada é enviado para nenhum servidor.

O que significa o valor de "entropia" exibido?

Entropia mede a imprevisibilidade do UUID em bits. Versão 4 tem 122 bits de entropia aleatória. Versões 1, 6 e 7 têm ~74 bits aleatórios — o restante é determinado pelo timestamp. Versões 3 e 5 são totalmente determinísticas (zero entropia) — o output é sempre o mesmo para o mesmo namespace + nome.

Recursos

Ferramentas Relacionadas