Gerador UUID

Opções do Formato

Número gerado

Número

Gerador UUID/GUID/ULID/NanoID online gratuito que suporta 5 formatos de ID único, geração em massa até 100, formatação personalizável e validação UUID. Pronto para usar instantaneamente — perfeito para chaves primárias de banco de dados e criação de dados de teste.

Sugestões Relacionadas

O que é um UUID?

UUID (Universally Unique Identifier) é um identificador de 128 bits padronizado pela Open Software Foundation (OSF), definido no RFC 4122. Seu objetivo é permitir que sistemas distribuídos identifiquem informações de forma única sem uma autoridade central para atribuição de IDs.

Um UUID padrão se parece com `550e8400-e29b-41d4-a716-446655440000`, composto por 32 dígitos hexadecimais divididos em 5 grupos (8-4-4-4-12) por hífens. Teoricamente, a probabilidade de colisão do UUID v4 é cerca de 1/10^36 — se você gerasse 1 bilhão de UUIDs por segundo por cerca de 800 anos, a probabilidade de uma única colisão seria aproximadamente 50%, o que é desprezível na prática.

UUIDs são amplamente usados para chaves primárias de banco de dados, IDs de rastreamento distribuído, IDs de requisição, IDs de rastreamento de log, nomenclatura única de arquivos, IDs de dados de teste e identificadores de sessão. Quase todas as linguagens de programação principais incluem bibliotecas de geração UUID integradas.

Casos de uso

  • Gere UUID v4 como chaves primárias de registros de tabela durante o design de banco de dados para evitar vazamento de volume de dados de IDs autoincrementais
  • Use ULID como IDs globais de requisição/rastreamento ordenáveis em sistemas distribuídos ou arquiteturas de microsserviços
  • Gere UUIDs em massa como dados de teste e IDs simulados de pedido/usuário durante desenvolvimento de API e testes de integração
  • Use NanoID em vez de UUID em links curtos de frontend ou URLs de compartilhamento — mais curto, mais limpo, sem necessidade de codificação URL
  • Use UUID v5 para gerar IDs determinísticos a partir de namespaces fixos, garantindo que a mesma entrada sempre produza a mesma saída
  • Use o recurso de validação para identificar tipo e versão de ID ao encontrar IDs de formato desconhecido em logs de depuração ou documentação de terceiros

Como Usar

  1. Selecione o tipo de ID desejado dos cartões acima: UUID v4 (recomendado), v1, v5, ULID ou NanoID
  2. Se escolher UUID v5, insira uma string de namespace; outros IDs podem definir opções de formato diretamente
  3. Alterne opções de maiúsculas e hífens conforme necessário, defina a quantidade de geração em massa (1-100) por meio de botões rápidos ou controle deslizante
  4. Clique no botão gerar para ver os resultados — copie individualmente, copie tudo de uma vez ou exporte como TXT/JSON
  5. Para validar um ID existente, vá para a aba "Validar" e cole a string do ID para obter informações de tipo e versão

Recursos

  • Cinco tipos de ID em uma ferramenta: UUID v1 (timestamp), v4 (aleatório), v5 (namespace), ULID (ordenável) e NanoID (seguro para URL) — uma ferramenta cobre todas as necessidades da stack tecnológica
  • Validação e reconhecimento de UUID: Vá para a aba Validar, cole qualquer ID para identificar sua versão UUID ou detectar formato ULID/NanoID — resolução rápida de problemas durante depuração
  • Gerar em massa até 100: Gere qualquer quantidade de 1 a 100 IDs de uma vez — chega de copiar manualmente um por um para dados de teste
  • Formatação flexível: Alterna maiúsculas e hífens para UUIDs para atender aos requisitos de formato de bancos de dados, URLs e arquivos de configuração
  • Exportação e histórico local: Copie tudo com um clique, exporte arquivos TXT/JSON, histórico de geração salvo localmente para recuperação instantânea — operações em massa mais eficientes
  • Aleatório seguro no lado do cliente: Usa a API crypto do navegador para números aleatórios criptograficamente seguros, IDs nunca saem do seu dispositivo, funciona offline

Exemplos de Código

Gerar UUID v4 em JavaScript

javascript

Navegadores modernos e Node.js 14.17+ têm a Web Crypto API integrada, permitindo geração direta de UUID v4 sem bibliotecas de terceiros.

// Navegadores modernos / Node.js 19+
const id = crypto.randomUUID();
console.log(id); // "550e8400-e29b-41d4-a716-446655440000"

// Node.js 14.17 - 18.x
const crypto = require('crypto');
const id = crypto.randomUUID();

Gerar UUIDs em Massa em Python

python

Use o módulo uuid da biblioteca padrão do Python para gerar vários UUID v4 em massa, ideal para preparação de dados de teste.

import uuid

# Gerar um único UUID
uid = uuid.uuid4()
print(uid)

# Gerar 10 UUIDs em massa
for _ in range(10):
    print(uuid.uuid4())

# Gerar UUID em maiúsculas sem hífens
print(uuid.uuid4().hex.upper())

Gerar UUID a partir da Linha de Comando Shell

bash

Gere UUIDs rapidamente no terminal Linux/macOS, adequado para uso em scripts shell.

# Linux
uuidgen

# macOS
uuidgen | tr 'A-Z' 'a-z'

# Leitura direta do arquivo aleatório do sistema (método mais bruto)
cat /proc/sys/kernel/random/uuid

Qual esquema de ID único você deve escolher?

UUID não é a única opção: IDs auto-incrementais de banco de dados e Snowflake também são esquemas de chave primária comuns. Decida primeiro com base em 'volume de dados, necessidade de unicidade global e necessidade de ordenação temporal' para evitar muitas voltas.

UUID v1 / v4 / v5 / ULID / NanoID: qual escolher?

Os 5 IDs têm trade-offs em volume de dados, ordenação e comprimento de caracteres. Decida com base em 'onde é usado + se precisa de ordenação + se é usado diretamente em URL', mais confiável do que se basear nos números em si.

EsquemaCenário recomendadoOrdenaçãoComprimentoRecomendação
UUID v1Sistemas internos que precisam de ordenação temporal e aceitam o vazamento de MAC e horário de geraçãoOrdenação temporal36 caracteres⚠ Geralmente não recomendado (vazamento de privacidade)
UUID v4Chaves primárias de BD, identificadores gerais, a maioria dos cenários de negócioSem ordem (aleatório)36 caracteres✓ Primeira escolha universal
UUID v5Cenários que exigem saída determinística (mesma entrada → mesmo UUID)Sem ordem36 caracteres✓ Recomendado quando o namespace é fixo
ULIDChaves primárias de sistemas distribuídos, tracing de logs, índices que precisam de ordenação temporalOrdenação temporal (os primeiros 48 bits são timestamp em milissegundos)26 caracteres✓ Primeira escolha para sistemas distribuídos
NanoIDLinks curtos de URL, identificadores de cookie, referências JS no frontendSem ordem (aleatório)21 caracteres (padrão)✓ Primeira escolha para cenários de ID curtos

UUID vs ID auto-incremental de BD vs Snowflake ID: como escolher a chave primária?

Esses três são os esquemas de chave primária backend mais comuns e determinam a escalabilidade, segurança de concorrência e características de desempenho do sistema. Decidir com base em 'volume de dados / requisito de unicidade global / legibilidade' evita mudanças de arquitetura posteriores.

DimensãoUUIDID auto-incremental BDSnowflake
Unicidade global✓ Sim (em teoria)✗ Não (duplicatas após sharding do BD)✓ Sim (garantido por data center + worker ID)
Vazamento de volume✓ Sem vazamento✗ Direto (1, 2, 3 incremental revela o volume real)⚠ Bits de tempo revelam o horário de geração (não o volume total direto)
Ordenação✗ Sem ordem (ULID é a exceção)✓ Monotonicamente crescente (amigável ao B-Tree)✓ Crescente por tendência (ordenado no mesmo milissegundo)
Suporte a sharding✓ Suporte nativo✗ Requer gerador de ID ou refatoração✓ Distinguível via worker ID
Custo de armazenamento⚠ Alto (BINARY(16) são 16 bytes)✓ Baixo (BIGINT são 8 bytes)✓ Baixo (BIGINT são 8 bytes)
Cenários adequadosChaves primárias multi-serviço/distribuídas, identificadores externos, negócios sensíveis a volume de dadosApps monolíticos, backends administrativos, sem necessidade de unicidade globalIM de alta concorrência, números de pedido, IDs de mensagem (requer implementação própria)

Best Practices

Para chaves primárias de banco em produção, prefira UUID v4 ou ULID, evite v1

Os últimos 48 bits do UUID v1 são o endereço MAC, e os primeiros 48 bits são um timestamp com precisão de 100 ns – **esses dois campos podem ser revertidos a uma impressão digital da máquina e ao horário de geração**. O RFC 4122 deixa claro que v1 deve ser usado 'somente quando a compatibilidade com versões anteriores for necessária'. Em produção, prefira v4 (aleatório) ou ULID (ordenável); use v1 apenas ocasionalmente em depuração ou quando precisar rastrear a máquina geradora. **Nunca** use v1 como IDs de usuário, IDs de dispositivo ou números de pedido expostos externamente.

Como escolher entre UUID v1, v4 e v5?

Comprimento do UUID 128 bit ≠ entropia: v4 tem apenas 122 bit de aleatoriedade real

Embora o UUID v4 tenha 128 bits no total, **os primeiros 4 bits são o número de versão (fixo em 0100) e os últimos 2 bits são a variante (fixa em 10)** – apenas 122 bits são realmente aleatórios. Essa é uma restrição de formato imposta pelo RFC 4122 – **qualquer biblioteca de UUID v4 que afirme oferecer '128 bits totalmente aleatórios' está mal implementada**. Além disso, nos últimos 64 bits do v4, os 2 bits superiores do 7º byte também são campos de variante, então a entropia real é ainda menor. Ao projetar sistemas, calcule a segurança com base em 122 bits (e não 128) para não subestimar o risco de colisão.

RFC 4122 - Especificação do UUID

Armazene UUIDs como colunas BINARY(16), não VARCHAR(36)

A string UUID v4 `550e8400-e29b-41d4-a716-446655440000` pode parecer compacta, mas VARCHAR(36) na verdade armazena 36 bytes + 2 bytes de comprimento = 38 bytes, **2,4 vezes mais espaço que BINARY(16)**. MySQL/PostgreSQL/MSSQL têm funções UUID nativas que suportam gravação direta em BINARY(16), e o tamanho do índice também cai pela metade. Quando as tabelas passam de 100 milhões de linhas, índices de chave primária em VARCHAR(36) fazem a altura do B-Tree crescer 1-2 níveis, **degradando o desempenho das consultas em 30-50 %**. Converta para string apenas para exibição no frontend; na camada de negócio, transporte sempre como BINARY(16).

Tabela comparativa UUID / ULID / NanoID

Em cenários de URL, use NanoID ou UUID sem hifens para evitar codificação de URL

O conjunto de caracteres do UUID v4 é `[0-9a-f-]`, **e o hífen - em caminhos de URL exige codificação dupla de URL** (primeiro escapado para %2D, depois para %252D), o que fica feio. Duas soluções: **(1) em cenários de URL, use NanoID diretamente** (padrão de 21 caracteres URL-safe); **(2) UUID v4 com hifens desativados** produz 32 caracteres hex puros, que não precisam de codificação como segmento de caminho de URL. Para cenários de cookie, prefira também NanoID (A-Za-z0-9_-) ou UUID sem hifens, evitando os caracteres `+` `/` `=` (conjunto de caracteres Base64).

É possível remover hifens ou converter UUIDs para maiúsculas?

Após geração em massa, sempre deduplique: bugs do gerador podem causar duplicatas

A probabilidade de colisão do UUID v4 é de cerca de 1/10^36, então em teoria não é preciso deduplicar – **mas em engenharia, não confie na teoria**. Incidentes reais como falhas de RNG no kernel do Linux, bugs na implementação de `crypto.randomUUID` em versões antigas do Node.js e entropia insuficiente na inicialização de VMs na nuvem já causaram duplicatas em UUIDs gerados em massa. **Em produção, após gerar 100k+ UUIDs em massa, é obrigatório executar `SELECT id, COUNT(*) FROM t GROUP BY id HAVING COUNT(*) > 1` para deduplicar e verificar** – se houver problemas, reverta imediatamente a versão do gerador. Esta é uma boa prática aprendida com lições dolorosas em cenários de migração de dados e importação em massa.

Posso gerar vários UUIDs de uma só vez?

Perguntas frequentes

Qual é a diferença entre UUID e GUID?

UUID (Universally Unique Identifier) e GUID (Globally Unique Identifier) são essencialmente a mesma coisa com nomes diferentes: UUID é o nome formal do padrão IETF (RFC 4122), enquanto GUID é o termo preferido da Microsoft no ecossistema Windows. Ambos compartilham o formato idêntico de 128 bits como `550e8400-e29b-41d4-a716-446655440000`. Os UUIDs padrão gerados por esta ferramenta funcionam intercambiavelmente em qualquer cenário que exija GUIDs.

Como escolher entre UUID v1, v4 e v5?

UUID v1 é baseado em timestamp e endereço MAC — ordenado por tempo e rastreável, mas pode vazar informações do endereço MAC. UUID v4 é completamente aleatório, a escolha mais usada e segura, adequada para a maioria dos cenários de chave primária e identificador. UUID v5 é uma versão baseada em namespace com hash SHA-1 — o mesmo namespace + o mesmo nome sempre produz o mesmo UUID, ideal para cenários de saída determinística. Para desenvolvimento geral, UUID v4 é a escolha padrão.

Quais vantagens ULID e NanoID têm sobre UUID v4?

ULID (26 caracteres) é mais curto que UUID (36 caracteres com hífens) e pode ser ordenado lexicograficamente por tempo de criação, tornando-o ideal para índices de banco de dados e rastreamento de logs. NanoID (21 caracteres por padrão) é ainda mais curto e rápido, usa caracteres seguros para URL, então não precisa de escaping em URLs e cookies — é cerca de 30% menor que UUID. Todos os três têm probabilidade de colisão desprezível, mas a capacidade de ordenação do ULID brilha em sistemas distribuídos, enquanto NanoID é mais amigável para cenários de frontend/URL.

Posso gerar vários UUIDs de uma vez?

Sim. Esta ferramenta suporta geração em massa de 1 a 100 IDs. Defina a quantidade por meio de botões rápidos ou do controle deslizante e gere com um clique — perfeito para criação de dados de teste, importação em massa e preparação de IDs únicos para scripts. Após gerar, você pode copiar todos os resultados de uma vez ou exportar como arquivos TXT ou JSON.

Guia de geração em massa

Posso validar se uma string é um UUID válido?

Sim. Vá para a aba "Validar" e cole qualquer string — a ferramenta identifica e valida automaticamente: UUIDs padrão (v1/v3/v4/v5) informarão seu número de versão específico, e também reconhece formatos ULID (Crockford Base32 de 26 caracteres) e NanoID (caracteres seguros para URL de 21 caracteres), tornando-a muito conveniente para resolver rapidamente problemas de formato de ID durante desenvolvimento e depuração.

Gerar UUID online é seguro? Meus IDs vazarão para um servidor?

Completamente seguro. Toda geração e validação de ID executa localmente no seu navegador por meio de JavaScript, usando crypto.getRandomValues() para números aleatórios criptograficamente seguros. Nenhum ID gerado é enviado a qualquer servidor, e nenhum histórico de geração é armazenado na nuvem. Funciona mesmo offline, tornando-o adequado para intranets empresariais e projetos sensíveis.

Posso remover hífens ou converter UUIDs para maiúsculas?

Sim. Para UUID v1/v4/v5, a ferramenta fornece duas alternâncias: "Maiúsculas" alterna a caixa da saída, e "Hífens" permite remover os traços (útil para URLs, arquivos de configuração ou bancos de dados que exigem formato sem hífens). ULID e NanoID não têm hífens por padrão e também suportam alternância de caixa.

Por que usar uma ferramenta online em vez da linha de comando para gerar UUIDs?

Ferramentas de linha de comando (como uuidgen do Linux, módulo uuid do Python) exigem um ambiente de desenvolvimento. Uma ferramenta online funciona instantaneamente no seu navegador sem necessidade de instalação. Além disso, esta ferramenta integra reconhecimento de versão UUID, exportação em massa e recursos de histórico local — mais conveniente ao trabalhar entre dispositivos (por exemplo, gerar IDs para colegas não técnicos) ou quando precisar de IDs rapidamente.

Glossário

UUID
Universally Unique Identifier, comprimento de 128 bits, padrão RFC 4122, versões comuns incluem v1 (timestamp+MAC), v4 (aleatório), v5 (hash SHA-1).
GUID
Globally Unique Identifier, termo da Microsoft para UUID — os dois são idênticos em formato e propósito.
ULID
Universally Unique Lexicographically Sortable Identifier, 26 caracteres usando codificação Crockford Base32, primeiros 48 bits são timestamp — ordenável por tempo de criação.
NanoID
Um gerador de ID único leve, 21 caracteres seguros para URL por padrão (A-Za-z0-9_-), mais curto e mais rápido que UUID, ideal para cenários de frontend e URL.
UUID v1
Versão UUID baseada em timestamp e endereço MAC, ordenável por tempo, mas pode vazar endereço MAC e tempo de geração — menos segura que v4.
UUID v4
Versão UUID completamente baseada em números aleatórios, mais usada, probabilidade de colisão desprezível, a escolha padrão no desenvolvimento.
UUID v5
Versão UUID de namespace baseada em hash SHA-1 — o mesmo namespace + a mesma entrada de nome produz saída UUID idêntica, adequada para cenários determinísticos.
Probabilidade de Colisão
A probabilidade de que dois IDs gerados aleatoriamente sejam idênticos. A probabilidade de colisão do UUID v4 é cerca de 1 em 17 bilhões de trilhões, desprezível na engenharia prática.
Crockford Base32
Uma codificação Base32 projetada por Douglas Crockford que usa letras maiúsculas e dígitos excluindo I/L/O/U para evitar caracteres ambíguos — usada pelo ULID.

Comparação UUID / ULID / NanoID

CaracterísticaUUID v4ULIDNanoID
Comprimento36 caracteres (com hífens) / 32 caracteres (sem hífens)26 caracteres21 caracteres (padrão)
Conjunto de CaracteresHexadecimal (0-9a-f)Crockford Base32 (32 caracteres)Seguro para URL (64 caracteres)
Capacidade de OrdenaçãoNão ordenado (aleatório)Ordenado por tempoNão ordenado (aleatório)
Seguro para URLPrecisa de escaping (hífens + alfanuméricos)Principalmente seguro (maiúsculas + dígitos)Totalmente seguro para URL
Velocidade de GeraçãoRápidoRápido~60% mais rápido que UUID
Probabilidade de Colisão1/10^361/10^361/10^34 (em 21 caracteres)
Casos de Uso TípicosChaves primárias de banco de dados, IDs geraisSistemas distribuídos, rastreamento de logsURLs curtas, IDs de frontend, cookies

Métodos de Geração UUID por Linguagem

LinguagemCódigo
JavaScriptcrypto.randomUUID() // Navegadores modernos / Node.js 19+
Pythonimport uuid; uuid.uuid4()
JavaUUID.randomUUID()
Gogithub.com/google/uuid; uuid.New()
Bash/Linuxuuidgen ou cat /proc/sys/kernel/random/uuid

Authoritative References