Gerador de UUID (v4 e v7)
Gere identificadores únicos de 128 bits nas versões 4 e 7 da RFC 9562 e, na aba Validar, descubra a versão, a variante e o horário embutido em qualquer UUID.
Até 1000 itens por vez. Tudo é gerado no seu navegador.
Como usar
- Escolha a versão: v4 (totalmente aleatório) ou v7 (começa com o horário atual em milissegundos).
- Ajuste o formato: maiúsculas e com hífens (36 caracteres) ou sem hífens (32 caracteres hexadecimais).
- Clique em Gerar e em Copiar; para chaves de seed, defina a Quantidade (até 1000) e use Exportar CSV ou Exportar JSON.
- Na aba Validar, cole um ou vários UUIDs (um por linha) e clique em Validar; são aceitos maiúsculas, sem hífens, entre chaves ou com prefixo
urn:uuid:. - Cada linha mostra válido/inválido, o motivo, a versão e, no v7, a data e hora em UTC.
Como funciona
Estrutura de um UUID
Um UUID tem 128 bits, escritos como 32 dígitos hexadecimais no formato 8-4-4-4-12. Dois campos são fixos pela RFC 9562: a versão fica no 13º dígito hexadecimal (o primeiro do 3º grupo) e a variante nos bits mais altos do 17º dígito (o primeiro do 4º grupo), que para UUIDs da RFC começam com 10 — por isso esse dígito é sempre 8, 9, a ou b.
- v4 (§5.4): 16 bytes de
crypto.getRandomValues; depois força-se a versão 4 e a variante, sobrando 122 bits aleatórios. Colisão é, na prática, impossível. - v7 (§5.7): os primeiros 48 bits são o Unix timestamp em milissegundos (big-endian); o resto são bits aleatórios, exceto versão e variante (74 bits aleatórios). Como o tempo vem primeiro, os UUIDs v7 ficam em ordem aproximadamente cronológica, o que melhora a localidade em índices B-tree de bancos como PostgreSQL e MySQL.
Exemplo decodificado
Um UUID v7 gerado em 13/11/2026 às 12:00:00 UTC: 01a1d4c7-6600-7c7d-9cd1-d6744db01075.
- Os 12 primeiros dígitos,
01a1d4c76600, valem 1.794.571.200.000 em decimal: milissegundos desde 1970-01-01, ou seja,2026-11-13T12:00:00.000Z. - 13º dígito
7→ versão 7. - 17º dígito
9= binário1001; os bits altos10indicam a variante da RFC 9562. - O restante (
c7ded1d6744db01075, menos os 2 bits da variante) é aleatório.
O que o validador verifica
Depois de remover urn:uuid:, chaves e hífens, a entrada precisa ter exatamente 32 dígitos hexadecimais. O UUID nulo (00000000-0000-0000-0000-000000000000, §5.9) e o máximo (ffffffff-ffff-ffff-ffff-ffffffffffff, §5.10) são reconhecidos como casos especiais. Nos demais, a variante precisa ser 10 (senão: erro de variante — por exemplo, GUIDs antigos da Microsoft) e a versão precisa estar entre 1 e 8. Para v7, o timestamp é exibido em ISO 8601 UTC.
Observação: esta implementação não usa contador monotônico; dois v7 criados no mesmo milissegundo são ordenados apenas pela parte aleatória.
Perguntas frequentes
Devo usar UUID v4 ou v7?
Use v7 para chaves primárias e qualquer coisa que seja indexada ou ordenada: a parte inicial cresce com o tempo e reduz a fragmentação de índices. Use v4 quando o identificador não deve revelar nada, nem mesmo o momento em que foi criado, como tokens públicos ou IDs expostos em URLs.
O UUID v7 expõe informação?
Sim, o horário de criação com precisão de milissegundos, que qualquer pessoa pode ler, inclusive com a aba Validar desta página. Em geral isso não é problema para chaves internas, mas evite v7 em identificadores públicos se o momento da criação for sensível.
UUID e GUID são a mesma coisa?
Na prática, sim: GUID é o nome usado no ecossistema Microsoft. A diferença é que alguns GUIDs antigos usam a variante reservada à Microsoft (17º dígito c ou d) e o .NET grava os primeiros campos em ordem de bytes little-endian. O validador rejeita a variante Microsoft com o motivo “variante”.
Posso usar UUID como senha ou token secreto?
Um v4 tem 122 bits aleatórios gerados por um gerador criptográfico, mas a RFC 9562 recomenda não presumir que UUIDs sejam difíceis de adivinhar. Para segredos, prefira tokens próprios de 128 a 256 bits aleatórios. E nunca use v7 como segredo, já que parte dele é o horário.
Como gravar UUID no banco de dados?
Prefira o tipo nativo: uuid no PostgreSQL, BINARY(16) no MySQL ou uniqueidentifier no SQL Server. Gravar como texto de 36 caracteres funciona, mas ocupa mais que o dobro de espaço e torna os índices mais lentos. O PostgreSQL 18 já traz uuidv7() nativo.
Fontes
Ferramentas relacionadas
Atualizado em 13/11/2026 · Rafael Lima