Pular para o conteúdo
nearnull

Gerador de UUID

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

Opções

Formato

UUIDs

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.