Gerador de UUID
Gere identificadores únicos universais (UUID v4) com um clique. Perfeito para IDs de banco de dados, tokens e chaves únicas.
cb03b48b-a6f2-4b41-818a-cd872f6dfb69📚 O que é UUID?
UUID (Universally Unique Identifier), também conhecido como GUID (Globally Unique Identifier) no mundo Microsoft, é um identificador de 128 bits projetado para ser único em todo o mundo, sem necessidade de coordenação central.
O formato padrão de um UUID consiste em 32 dígitos hexadecimais, exibidos em 5 grupos separados por hífens: 8-4-4-4-12 caracteres, totalizando 36 caracteres.
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxxO "4" indica a versão (v4 = aleatório) e o "y" indica a variante (8, 9, a ou b)
🔧 Versões de UUID
- UUID v1: Baseado em timestamp e endereço MAC (pode revelar informações)
- UUID v2: Similar ao v1, usado para segurança DCE (raro)
- UUID v3: Baseado em hash MD5 de um namespace e nome
- UUID v4: Gerado aleatoriamente — o mais usado hoje!
- UUID v5: Baseado em hash SHA-1 de um namespace e nome
- UUID v7: Novo padrão com timestamp ordenável (2022+)
Esta ferramenta gera UUID v4, que é puramente aleatório e o mais comum em aplicações modernas.
💼 Casos de Uso Comuns
- Chaves primárias: IDs únicos em bancos de dados distribuídos
- Identificadores de sessão: Tokens de sessão em aplicações web
- Rastreamento: IDs para logs, eventos e transações
- Nomes de arquivos: Evitar colisões em uploads de arquivos
- APIs e microsserviços: Correlação de requisições entre serviços
- Testes: Dados de exemplo em desenvolvimento e testes
❓ Perguntas Frequentes
UUID v4 pode gerar duplicatas?
Teoricamente sim, mas a probabilidade é astronomicamente baixa. Com 122 bits aleatórios, você precisaria gerar 2.71 quintilhões de UUIDs para ter 50% de chance de colisão.
Devo usar UUID ou IDs sequenciais?
UUIDs são ideais para sistemas distribuídos e quando você não quer expor a ordem de criação. IDs sequenciais são melhores para performance em alguns bancos de dados e quando a ordem importa.
UUID com ou sem hífens?
Ambos são válidos. O formato com hífens é mais legível, enquanto sem hífens é mais compacto (32 vs 36 caracteres). Alguns bancos de dados têm tipos específicos para UUID.
📝 Exemplos de Código
Veja como gerar UUIDs v4 em diferentes linguagens de programação:
💛 JavaScript
// Usando crypto.randomUUID() (navegadores modernos e Node.js 19+)
const uuid = crypto.randomUUID();
console.log(uuid); // "550e8400-e29b-41d4-a716-446655440000"
// Implementação manual compatível
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
const r = Math.random() * 16 | 0;
const v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}🐍 Python
import uuid
# Gerar UUID v4 (aleatório)
novo_uuid = uuid.uuid4()
print(novo_uuid) # 550e8400-e29b-41d4-a716-446655440000
# Converter para string sem hífens
uuid_sem_hifens = str(novo_uuid).replace('-', '')
# Validar se string é um UUID válido
try:
uuid.UUID(str(novo_uuid))
print("UUID válido")
except ValueError:
print("UUID inválido")🟣 C# (.NET)
using System;
// Gerar novo GUID (equivalente a UUID)
Guid novoGuid = Guid.NewGuid();
Console.WriteLine(novoGuid); // 550e8400-e29b-41d4-a716-446655440000
// Formatos de saída
string comHifens = novoGuid.ToString("D"); // padrão
string semHifens = novoGuid.ToString("N"); // 32 caracteres
// Parse de string para Guid
Guid parsed = Guid.Parse("550e8400-e29b-41d4-a716-446655440000");
// Validar GUID
bool isValid = Guid.TryParse(input, out Guid result);☕ Java
import java.util.UUID;
// Gerar UUID v4 (aleatório)
UUID novoUuid = UUID.randomUUID();
System.out.println(novoUuid);
// Converter para string sem hífens
String semHifens = novoUuid.toString().replace("-", "");
// Parse de string para UUID
UUID parsed = UUID.fromString("550e8400-e29b-41d4-a716-446655440000");
// Obter componentes
long mostSigBits = novoUuid.getMostSignificantBits();
long leastSigBits = novoUuid.getLeastSignificantBits();🐘 PHP
<?php
// Função para gerar UUID v4
function uuidv4() {
$data = random_bytes(16);
$data[6] = chr(ord($data[6]) & 0x0f | 0x40); // versão 4
$data[8] = chr(ord($data[8]) & 0x3f | 0x80); // variante
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
$uuid = uuidv4();
echo $uuid; // 550e8400-e29b-41d4-a716-446655440000
// Validar UUID com regex
$pattern = '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i';
$isValid = preg_match($pattern, $uuid);
?>