Dados de teste para devs brasileiros
PT
Dados fictícios para testes de software. Usar documentos falsos para fraude é crime (Código Penal, arts. 297–299, 307).

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

  1. Escolha a versão: v4 (totalmente aleatório) ou v7 (começa com o horário atual em milissegundos).
  2. Ajuste o formato: maiúsculas e com hífens (36 caracteres) ou sem hífens (32 caracteres hexadecimais).
  3. Clique em Gerar e em Copiar; para chaves de seed, defina a Quantidade (até 1000) e use Exportar CSV ou Exportar JSON.
  4. 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:.
  5. 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.

  1. 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.
  2. 13º dígito 7 → versão 7.
  3. 17º dígito 9 = binário 1001; os bits altos 10 indicam a variante da RFC 9562.
  4. O restante (c7d e d1d6744db01075, 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