Gerador de UUID

Gere UUIDs versão 4 criptograficamente aleatórios ou versão 7 ordenados por tempo, um de cada vez ou em lote.

Funciona 100% no seu navegador. Nada do que você cola é enviado ou armazenado.

Como usar o gerador de UUID

  1. Escolha a versão: v4 (aleatória) ou v7 (ordenada por tempo).
  2. Defina quantos UUIDs você precisa, de um só até uma lista em massa.
  3. Se quiser, mude para maiúsculas ou remova os hifens.
  4. Copie um único valor ou a lista inteira.

Os UUIDs são gerados no seu navegador usando o gerador de números aleatórios criptograficamente seguro dele. Eles nunca são enviados nem armazenados nos nossos servidores, então ninguém mais sabe quais identificadores você criou.

O que é um UUID?

Um UUID (Universally Unique Identifier, identificador universalmente único) é um valor de 128 bits que pode ser gerado de forma independente em qualquer máquina, com uma chance desprezível de coincidir com qualquer outro. Não é preciso um registro central nem uma consulta ao banco de dados, o que torna os UUIDs ideais para sistemas distribuídos, clientes offline e para juntar dados de várias fontes. Eles também são uma escolha comum para IDs de requisição e para a claim jti dentro de tokens que você pode inspecionar com o decodificador de JWT. GUID (Globally Unique Identifier) é o nome que a Microsoft dá à mesma coisa.

Os UUIDs são escritos como 32 dígitos hexadecimais em cinco grupos separados por hifens, no padrão 8-4-4-4-12 (36 caracteres no total):

f47ac10b-58cc-4372-a567-0e02b2c3d479
              ^    ^
              |    variante (8, 9, a ou b)
              versão (4)

O primeiro dígito do terceiro grupo é a versão; o primeiro dígito do quarto grupo codifica a variante. A especificação atual é a RFC 9562 (2024), que substituiu a RFC 4122 e acrescentou as versões 6, 7 e 8.

Versão 4 x versão 7

UUID v4UUID v7
Conteúdo122 bits aleatórios (6 bits fixos para versão e variante)Timestamp Unix de 48 bits em milissegundos, seguido de bits aleatórios
OrdenaçãoAleatóriaAproximadamente cronológica
RevelaNadaO momento em que foi criado
Melhor paraTokens, IDs públicos, uso geralChaves primárias de banco de dados, logs de eventos

Por que o v7 é melhor para índices de banco de dados

As chaves primárias normalmente ficam guardadas num índice B-tree. Os valores v4 aleatórios caem em posições aleatórias, então cada inserção mexe numa página diferente, o que provoca divisões de página, pouca localidade de cache e inchaço do índice em tabelas grandes. Como os UUIDs v7 começam com um timestamp, os novos valores entram perto do fim do índice, de modo parecido com um inteiro de autoincremento, mantendo as vantagens de IDs globalmente únicos gerados no cliente.

Erros comuns

  • Guardar UUIDs como texto. Uma string de 36 caracteres ocupa mais que o dobro do espaço dos 16 bytes brutos. Use um tipo uuid nativo (PostgreSQL) ou BINARY(16) (MySQL).
  • Usar UUIDs como segredos. Os valores v4 são difíceis de adivinhar, mas são identificadores, não credenciais. Os valores v7 expõem o momento da criação e são parcialmente previsíveis. Use um token aleatório próprio para redefinição de senha e chaves de API.
  • Comparações que diferenciam maiúsculas e minúsculas. A RFC 9562 especifica saída em minúsculas, mas exige que a entrada seja aceita tanto em maiúsculas quanto em minúsculas. Normalize antes de comparar strings.
  • Fontes aleatórias fracas. Gerar UUIDs v4 com Math.random() compromete a sua unicidade. Use um gerador criptograficamente seguro.

Como gerar UUIDs no código

// JavaScript (browsers and Node.js)
crypto.randomUUID();                 // v4

# Python
import uuid
uuid.uuid4()
uuid.uuid7()                         # Python 3.14+

-- PostgreSQL
SELECT gen_random_uuid();            -- v4 (PostgreSQL 13+)
SELECT uuidv7();                     -- PostgreSQL 18+

// Java
java.util.UUID.randomUUID();

// C# / .NET
Guid.NewGuid();                      // v4
Guid.CreateVersion7();               // .NET 9+

# Shell (Linux, macOS)
uuidgen
Dica: Precisa do timestamp de um UUID v7? Os primeiros 12 dígitos hexadecimais (sem hifens) são o horário Unix em milissegundos. Converta-os de hexadecimal para decimal e cole o resultado no conversor de timestamp Unix.

Perguntas frequentes

Dois UUIDs podem ser iguais?

Na teoria, sim; na prática, não. Com 122 bits aleatórios, o número de valores v4 possíveis é tão grande que você precisaria gerar bilhões de UUIDs por segundo durante muitas décadas até que uma única duplicata se tornasse provável. Colisões em sistemas reais quase sempre vêm de um gerador de números aleatórios com defeito ou de dados copiados, não do acaso.

Qual é a diferença entre UUID e GUID?

Na prática, nenhuma. GUID é o termo usado nas tecnologias da Microsoft; o formato e o tamanho são os mesmos.

Devo usar v4 ou v7?

Use v7 para chaves primárias de banco de dados e qualquer coisa que você queira ordenar pela data de criação. Use v4 quando o ID não deve revelar nada, como identificadores expostos em URLs públicas.

O UUID nil é válido?

Sim. 00000000-0000-0000-0000-000000000000 é o UUID nil especial, e a RFC 9562 também define um UUID máximo, com todos os dígitos f. Os dois costumam ser usados como marcadores de posição.

Atualizado

Copiado para a área de transferência