nearnull

Gerador de UUID

Gere identificadores UUID v4 aleatórios instantaneamente. Funciona totalmente no seu navegador: nada é enviado a nenhum servidor.

Formato

O que é um UUID?

Um Identificador Único Universal (UUID) é um número de 128 bits usado para identificar informações em sistemas computacionais. Quando gerado segundo os métodos padrão, um UUID é praticamente único no espaço e no tempo, sem exigir uma autoridade central de registro.

Comparação de versões

Versão 1 — Timestamp + Nó

Combina um timestamp de 60 bits com um identificador de nó. É aproximadamente ordenável pela data de criação. Esta ferramenta preenche o segmento de nó com bytes aleatórios em vez de um MAC real, então nunca vaza dados que identifiquem a máquina.

Baseado em tempoNão determinístico

Versão 2 — DCE Security

Definida pela antiga especificação DCE (Distributed Computing Environment): sobrescreve parte do timestamp e do clock sequence com um domínio local e um UID/GID POSIX. Esta ferramenta não a oferece — quase nenhuma biblioteca moderna de UUID oferece — porque nunca foi bem especificada, a substituição destrói a maior parte da precisão do timestamp, e nunca teve adoção real fora de sistemas legados DCE/NCS. A RFC 9562 a mantém apenas por completude histórica.

HistóricaNão implementadaDCE Security

Versão 3 — Baseada em nome (MD5)

Aplica hash MD5 a um UUID de namespace mais um nome. O mesmo namespace e nome sempre produzem o mesmo UUID, o que a torna útil para gerar IDs estáveis a partir de identificadores existentes — mas o MD5 é um hash legado e fraco.

DeterminísticaMD5Namespace + nome

Versão 4 — Aleatória

Gera UUIDs inteiramente a partir de números aleatórios ou pseudoaleatórios. É a versão mais comum, com excelente distribuição e chance mínima de colisão. Ideal para identificadores únicos de uso geral.

AleatóriaMais usada

Versão 5 — Baseada em nome (SHA-1)

A mesma ideia da v3, mas aplica hash SHA-1 ao namespace + nome em vez de MD5. A escolha recomendada sempre que você precisar de um UUID determinístico derivado de um nome.

DeterminísticaSHA-1Namespace + nome

Versão 6 — Timestamp reordenado

Uma reordenação compatível em campos da v1: o mesmo timestamp de 60 bits, mas com os bits mais significativos primeiro. Isso faz com que os UUID v6 sejam ordenados corretamente como strings simples, corrigindo a principal fraqueza da v1 para índices de banco de dados.

Ordenável por tempoAmigável a BD

Versão 7 — Timestamp Unix + aleatório

Combina um timestamp Unix em milissegundos com dados aleatórios. Por serem ordenados por tempo, os UUID v7 são altamente eficientes para indexação em bancos de dados (como B-trees) comparados ao v4, totalmente aleatório, mantendo excelente unicidade.

Ordenável por tempoAmigável a BDRecomendada

Versão 8 — Personalizada

A RFC 9562 deixa a v8 totalmente definida pelo fornecedor/aplicação — apenas os bits de versão e variante são fixos. Esta ferramenta preenche os bits livres com dados aleatórios como exemplo genérico; um sistema real definiria seu próprio layout.

PersonalizadaEspecífica do fornecedor

Exemplos

Gere um UUID aleatório (v4) de forma nativa, sem precisar de bibliotecas na maioria das linguagens:

JavaScript
crypto.randomUUID()
Python
import uuid
uuid.uuid4()
Java
UUID.randomUUID()
C#
Guid.NewGuid()
Go
import "github.com/google/uuid"

uuid.New()
PHP
Ramsey\Uuid\Uuid::uuid4()
Ruby
require 'securerandom'
SecureRandom.uuid

Casos de uso

Chaves primárias de banco de dados

Gere IDs em qualquer nó sem precisar de uma sequência central ou coordenação — útil para bancos de dados particionados e sistemas com múltiplos escritores. Prefira a v7 aqui: ela é ordenada por tempo, então as inserções ficam agrupadas e os índices B-tree permanecem eficientes.

Chaves de idempotência

Anexe um UUID a uma requisição de API para que as tentativas repetidas (por uma rede instável, um timeout, um duplo clique) sejam reconhecidas como a mesma operação em vez de processadas duas vezes.

IDs de correlação e rastreamento

Marque uma requisição com um UUID quando ela entra no seu sistema e passe-o por cada chamada a serviços downstream e cada linha de log, assim você consegue acompanhar uma requisição em um sistema distribuído.

Nomeação de arquivos e objetos

Nomeie uploads, arquivos gerados ou objetos em armazenamento (buckets tipo S3) com um UUID para evitar colisões entre usuários ou uploads simultâneos, sem precisar verificar o que já existe.

IDs gerados no cliente / offline-first

Deixe um aplicativo móvel ou formulário offline gerar seu próprio ID antes mesmo de chegar a um servidor — sem precisar de um round-trip para obter um identificador único, e sem risco de colisão quando o registro finalmente sincronizar.

Perguntas frequentes

Qual é a probabilidade de colisão de UUID?
Para um UUID v4, existem 2^122 combinações possíveis. Seria necessário gerar 1 bilhão de UUIDs por segundo durante cerca de 85 anos para chegar a 50% de chance de uma única colisão. Para fins práticos no desenvolvimento de software, a probabilidade é zero.
Esta ferramenta é segura?
Sim. A geração acontece inteiramente no seu navegador usando o crypto.getRandomValues() da Web Crypto API. Nenhum dado é enviado ou armazenado em nenhum servidor.
Qual versão de UUID devo usar?
Para a maioria dos casos de uso geral, use v4 (aleatória) ou v7 (ordenada por tempo). Escolha v7 quando o UUID for ser uma chave primária de banco de dados ou você precisar que as linhas sejam inseridas em ordem aproximadamente cronológica — ela é ordenada corretamente e é mais amigável aos índices B-tree que a v4. Use v5 quando precisar que a mesma entrada (um namespace + nome) sempre produza o mesmo UUID; evite a v3, que faz o mesmo, mas com o hash MD5, mais fraco. v1 e v6 são baseadas em timestamp como a v7, mas incluem um identificador de nó; a v6 é a correção ordenável da ordem de bytes da v1. A v8 é para layouts personalizados definidos pela aplicação.
Por que a Versão 2 não está disponível?
A Versão 2 (DCE Security) substitui parte do timestamp e do clock sequence por um domínio local e um UID/GID POSIX. Ela aparece na comparação acima por completude, mas este gerador não a oferece — nunca foi bem especificada, a substituição destrói a maior parte da precisão do timestamp, e nunca teve adoção real fora de sistemas legados DCE/NCS.
Qual é a diferença entre v1, v6 e v7?
As três incluem um timestamp, mas o ordenam de forma diferente. A v1 coloca primeiro os bits menos significativos do timestamp, então os UUID v1 não são ordenados corretamente como strings simples. A v6 é uma reordenação compatível em campos da v1 que corrige exatamente isso. A v7 vai além: usa um timestamp Unix em milissegundos em vez da época gregoriana de 1582, o que é mais simples, e é a versão agora recomendada pela RFC 9562 para sistemas novos.
Os UUID v3 e v5 são seguros?
São determinísticos, não secretos — qualquer pessoa que conheça o namespace e o nome pode regenerar exatamente o mesmo UUID, então não os use para nada que precise permanecer imprevisível (tokens de sessão, links de redefinição de senha). Para isso, use v4 ou v7. Entre v3 e v5, prefira a v5: ela usa SHA-1 em vez do MD5, mais fraco e obsoleto, no qual a v3 se baseia.
Um GUID é a mesma coisa que um UUID?
Sim, para fins práticos. GUID (Globally Unique Identifier) é o nome que a Microsoft usa para o mesmo identificador de 128 bits definido pelo padrão UUID — são estruturalmente idênticos e intercambiáveis na grande maioria dos casos. A única diferença histórica: algumas ferramentas antigas da Microsoft e a API COM/Windows armazenavam os campos em uma ordem de bytes diferente (mixed-endian) no binário, então verifique a ordem dos bytes se estiver interoperando com código Windows/COM muito antigo. Todos os UUIDs que esta ferramenta gera seguem o layout padrão da RFC 9562 (big-endian) usado em todo o resto.