Pular para o conteúdo principal

Gerador de UUID/GUID Online

Gere identificadores únicos universais (UUID/GUID) seguros e aleatórios em segundos. Ideal para desenvolvimento de software, bancos de dados e sistemas distribuídos.

Formato padrão: 8-4-4-4-12 caracteres hexadecimais
Exemplo: 550e8400-e29b-41d4-a716-446655440000

O que é UUID/GUID?

UUID (Universally Unique Identifier) e GUID (Globally Unique Identifier) são termos intercambiáveis para identificadores únicos de 128 bits. Criados para gerar IDs únicos sem necessidade de coordenação central, são amplamente usados em bancos de dados, APIs REST e sistemas distribuídos.

Versões de UUID

UUID v4 - Aleatório (Recomendado)

Gerado aleatoriamente usando criptografia forte. Probabilidade de colisão: ~1 em 2¹²² (trilhões de trilhões). Ideal para maioria dos casos: chaves primárias, tokens de sessão, identificadores de recursos.

Exemplo: 550e8400-e29b-41d4-a716-446655440000

UUID v1 - Baseado em Timestamp

Inclui timestamp (60 bits) + MAC address do computador (48 bits) + contador. Vantagem: ordenável cronologicamente. Desvantagem: revela informações do sistema (MAC address, horário de criação).

Exemplo: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Outras Versões (v3, v5, v6, v7)

v3/v5: Gerados por hash (MD5/SHA-1) de um namespace + nome. Determinísticos (mesmo input = mesmo UUID).
v6/v7: Propostas recentes que combinam timestamp ordenável com aleatoriedade segura.

Casos de uso comuns

🗄️ Chaves Primárias de Banco de Dados

Substitua auto-increment por UUIDs para facilitar merge de dados entre ambientes (dev, staging, prod) e sharding horizontal. MongoDB, PostgreSQL e MySQL suportam nativamente.

🔗 URLs de Recursos REST

/api/users/550e8400-e29b-41d4-a716-446655440000
UUIDs em URLs evitam enumeration attacks e mantêm URLs imprevisíveis.

🎫 Tokens de Sessão e Autenticação

Tokens OAuth, session IDs, reset tokens. UUIDs são criptograficamente seguros e impossíveis de adivinhar (ao contrário de sequências numéricas).

📦 Identificadores de Eventos/Mensagens

Rastreamento de eventos em microservices, message queues (RabbitMQ, Kafka), logs distribuídos. Correlation IDs entre serviços.

📁 Nomes de Arquivos Únicos

Uploads de imagens, backups, arquivos temporários. Evita conflitos e permite uploads simultâneos sem lock.

UUID vs Auto-increment: Prós e Contras

CaracterísticaUUIDAuto-increment (INT)
Tamanho16 bytes (128 bits)4 bytes (32 bits) ou 8 bytes (64 bits)
Geração distribuída✓ Sim, sem coordenação✗ Requer controle central
PrevisibilidadeImprevisível (seguro)Previsível (enumeration risk)
Performance índiceMais lenta (128 bits aleatórios)Mais rápida (sequencial, cache-friendly)
Ordenação cronológicaNão (v4), Sim (v1, v6, v7)Sim (sequencial)
Merge de bancos✓ Trivial (sem colisão)✗ Complexo (conflitos de ID)
Ideal paraSistemas distribuídos, APIs, segurançaSistemas monolíticos, performance crítica

Como usar UUID em diferentes linguagens

JavaScript/Node.js

// Nativo (Node.js 14.17+)
import { randomUUID } from 'crypto';
const uuid = randomUUID();

// Com biblioteca 'uuid'
import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();

Python

import uuid

# UUID v4
uuid_v4 = uuid.uuid4()
print(uuid_v4)  # 550e8400-e29b-41d4-a716-446655440000

# UUID v1
uuid_v1 = uuid.uuid1()
print(uuid_v1)  # 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Java

import java.util.UUID;

// UUID aleatório
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());

PostgreSQL

-- Habilitar extensão
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- Gerar UUID
SELECT uuid_generate_v4();

-- Criar tabela com UUID
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  name VARCHAR(100)
);

FAQ - Perguntas Frequentes

1. UUIDs são realmente únicos? Pode haver colisão?

UUIDs v4 têm 2¹²² combinações possíveis. A chance de colisão é astronomicamente baixa (1 em 5 bilhões após gerar 1 bilhão de UUIDs). Para fins práticos, considere-os únicos. Bancos de dados modernos detectam colisões através de constraints UNIQUE.

2. UUID v1 é seguro? Posso usá-lo em produção?

UUID v1 revela timestamp de criação e MAC address da máquina, considerado vazamento de informação. Não use para tokens de segurança ou em contextos onde privacidade é crítica. Prefira v4 para segurança, ou v6/v7 se precisar ordenação cronológica sem expor MAC address.

3. UUID impacta performance do banco de dados?

Sim, mas geralmente aceitável. UUIDs aleatórios causam fragmentação de índice B-tree (não são sequenciais). Para PostgreSQL, use UUID v7 ou ULID (Universally Unique Lexicographically Sortable Identifier). Para casos extremos de performance (bilhões de registros), mantenha auto-increment.

4. Devo usar hífens ou remover?

Depende do contexto. Com hífens (padrão RFC 4122): mais legível, compatível com bibliotecas padrão. Sem hífens: economiza 4 bytes em armazenamento string, útil para URLs curtas ou tokens. PostgreSQL armazena binário (16 bytes) independente da formatação.

5. Posso usar UUID como URL shortener?

Tecnicamente sim, mas ineficiente. UUIDs têm 36 caracteres (com hífens) ou 32 sem. Para URL shorteners, use encodings mais curtos: base62 (A-Za-z0-9) gera IDs de 6-8 caracteres, suficientes para bilhões de URLs.

6. UUID funciona em sistemas offline?

Sim! É uma das principais vantagens. Clientes offline (apps mobile, IoT) geram UUIDs localmente sem conexão ao servidor. Quando sincronizam, não há conflitos de ID. Ideal para CRDTs e sync multi-device.

Ferramentas Relacionadas