O Que é um UUID?
Um UUID (Universally Unique Identifier, ou identificador único universal) é um número de 128 bits usado para identificar coisas como linhas de banco de dados, arquivos, requisições de API e dispositivos sem precisar pedir a um servidor central o próximo ID livre. Ele é escrito como 32 dígitos hexadecimais em cinco grupos, 8-4-4-4-12, por exemplo f47ac10b-58cc-4372-a567-0e02b2c3d479.
Os UUIDs são definidos na RFC 9562 (2024), que substituiu a antiga RFC 4122 e acrescentou as versões 6, 7 e 8. O primeiro dígito hexadecimal do terceiro grupo indica a versão (o 4 em 4372 acima), e o primeiro dígito do quarto grupo mostra a variante (8, 9, a ou b nos UUIDs padrão).

Versões de UUID Explicadas
Todas as versões preenchem os mesmos 128 bits de um jeito diferente. Estas são as que você vai encontrar na prática:
122 bits aleatórios. Nenhum significado embutido, nada a vazar. É o padrão na maioria das linguagens (crypto.randomUUID(), uuid.uuid4(), Guid.NewGuid()).
Um timestamp Unix de 48 bits em milissegundos seguido de bits aleatórios, então os IDs novos ficam depois dos antigos na ordenação. A RFC 9562 recomenda o v7 no lugar do v1 e do v6.
Um timestamp de 60 bits, uma sequência de relógio (clock sequence) e um ID de nó de 48 bits que originalmente era o endereço MAC do computador. Nosso gerador usa um nó aleatório no lugar.
Um UUID de namespace mais um nome, com hash SHA-1 (v5) ou MD5 (v3). A mesma entrada sempre gera o mesmo UUID. Prefira o v5.
Os campos do v1 reorganizados para que os IDs fiquem ordenados por tempo. Serve principalmente de ponte para sistemas que já usam o v1.
Tudo zero (00000000-0000-0000-0000-000000000000) ou tudo f. Usados como marcadores de "sem valor" ou "fim do intervalo".
Advertisement
Como Gerar um UUID
v4 para um ID aleatório, v7 se os IDs vão para um índice de banco de dados ou precisam ser ordenados pela data de criação, v5 se o mesmo nome sempre tiver que corresponder ao mesmo UUID.
Gere 1, 10, 100 ou até 1.000 de uma vez. Cada um vem do gerador aleatório criptograficamente seguro do navegador.
Padrão em minúsculas, {chaves} e maiúsculas para GUIDs no estilo do Windows, 32 caracteres sem hifens ou uma URN urn:uuid:.
Copie um único UUID ou a lista inteira, ou baixe tudo como arquivo .txt. O endereço da página guarda suas configurações, então você pode salvá-las nos favoritos.
UUID vs GUID: Existe Diferença?
GUID (Globally Unique Identifier) é o nome que a Microsoft dá à mesma coisa. Um GUID criado por Guid.NewGuid() no .NET ou por New-Guid no PowerShell é um UUID versão 4 padrão.
A diferença visível está na forma como eles costumam ser escritos: ferramentas do Windows geralmente mostram GUIDs em maiúsculas e entre chaves, como {F47AC10B-58CC-4372-A567-0E02B2C3D479}. Escolha o formato GUID com chaves e marque Maiúsculas para obter exatamente isso. Internamente, o Windows e o .NET armazenam os três primeiros grupos em ordem de bytes little-endian, então os 16 bytes brutos diferem da ordem de bytes do UUID mesmo quando o texto é idêntico. Alguns GUIDs COM muito antigos usam os bits de variante próprios da Microsoft, que o decodificador acima identifica.
Advertisement
UUID v4 vs v7: Qual Usar?
Os dois são seguros como IDs únicos. A diferença aparece quando você armazena milhões deles em um índice de banco de dados.
Use v7 para chaves primárias. Como cada novo UUID v7 é maior que o anterior, as inserções caem no fim de um índice B-tree em vez de em lugares aleatórios, o que mantém os índices compactos e as inserções rápidas no PostgreSQL e no MySQL. O SQL Server é a exceção: ele ordena valores
uniqueidentifierprimeiro pelos seis últimos bytes, então o v7 não traz esse benefício lá.Use v4 quando o ID não puder revelar nada. Um UUID v7 contém o momento da sua criação, com precisão de milissegundos; qualquer pessoa que o veja pode ler esse horário com o decodificador acima.
Use v5 para IDs estáveis a partir de nomes, por exemplo um UUID por nome de domínio ou URL, para que todos os sistemas calculem o mesmo valor sem compartilhar uma tabela.
Evite o v1 em projetos novos. O v1 clássico embute o endereço MAC da máquina e o momento da criação; a RFC 9562 recomenda o v7 no lugar.
Dois UUIDs Podem Ser Iguais?
Na teoria sim, na prática não. Um UUID versão 4 tem 122 bits aleatórios, cerca de 5,3 × 10^36 valores possíveis. Você precisaria gerar por volta de 2,7 quintilhões (2,7 × 10^18) deles antes de ter sequer 50% de chance de uma única duplicata. Isso equivale a um bilhão de UUIDs por segundo durante cerca de 86 anos.
O risco real é um gerador de números aleatórios defeituoso, não a matemática. Esta ferramenta usa crypto.getRandomValues(), a fonte criptograficamente segura do navegador, e o v7 mantém um contador para que UUIDs criados no mesmo milissegundo continuem na ordem certa e nunca se repitam.
Advertisement
Decodificar um UUID: Versão, Variante e Timestamp
Abra a aba Decodificar e cole um ou mais UUIDs, um por linha, no formato padrão, com chaves, urn:uuid: ou de 32 caracteres. Para cada um você vê se é válido, a versão e a variante e, nos v1, v6 e v7, a data e a hora em que foi criado.
Nos UUIDs v1 e v6, o decodificador também mostra o ID do nó e se ele parece um endereço MAC real ou um valor aleatório. É um jeito rápido de verificar se IDs antigos do seu sistema estão vazando endereços de hardware.
Como Gerar UUID no Código
A maioria das principais linguagens e bancos de dados cria UUIDs sem pacotes extras. O suporte à versão 7 é mais recente: chegou no Python 3.14, no PostgreSQL 18, no .NET 9 e no Go 1.27.
crypto.randomUUID()
// 'f47ac10b-58cc-4372-a567-0e02b2c3d479' (versão 4)import uuid
uuid.uuid4() # aleatório
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # baseado em nome, sempre o mesmo
uuid.uuid7() # Python 3.14+SELECT gen_random_uuid(); -- versão 4 (PostgreSQL 13+)
SELECT uuidv7(); -- versão 7 (PostgreSQL 18+)Guid.NewGuid() // versão 4
Guid.CreateVersion7() // versão 7 (.NET 9+)
# PowerShell
New-Guiduuidgen # UUID aleatório (o macOS imprime em maiúsculas)
uuidgen --time # versão 1 (util-linux)
cat /proc/sys/kernel/random/uuid # kernel do LinuxUUID.randomUUID() // Java, versão 4
uuid.NewV4() // biblioteca padrão do Go 1.27+, versão 4
uuid.NewV7() // Go 1.27+, versão 7
// Go mais antigo: github.com/google/uuid (uuid.New, uuid.NewV7)Advertisement
Mais Ferramentas para Desenvolvedores
Outras ferramentas grátis para desenvolvedores e administradores de sistemas, todas rodando no seu navegador:
Timestamp Unix para data e vice-versa, em qualquer fuso horário.
Converta texto, imagens e arquivos para Base64 e de volta.
Senhas aleatórias fortes com análise de entropia.
Endereços MAC aleatórios com prefixos de fabricante.