Neste artigo
O que e um UUID?
Um UUID (Universally Unique Identifier) e um valor de 128 bits usado para identificar informacoes de forma unica em sistemas computacionais. Escrito como 32 digitos hexadecimais exibidos em cinco grupos separados por hifens, um UUID se parece com 550e8400-e29b-41d4-a716-446655440000.
UUIDs sao projetados para serem globalmente unicos sem necessidade de uma autoridade central de registro. Isso os torna ideais para sistemas distribuidos onde multiplos nos devem gerar identificadores independentemente sem colisoes.
Versoes de UUID explicadas
O padrao UUID define varias versoes, cada uma com um metodo de geracao diferente. O numero da versao aparece como o 13o caractere.
- Versao 1 (v1) — baseada em tempo: combina o carimbo de data/hora atual com o endereco MAC da maquina. Garante unicidade mas expoe informacoes de hardware
- Versao 3 (v3) — baseada em nome com MD5: gera um UUID deterministico atraves do hash de um namespace e nome com MD5
- Versao 4 (v4) — aleatoria: a versao mais usada. Todos os bits exceto os campos de versao e variante sao gerados aleatoriamente
- Versao 5 (v5) — baseada em nome com SHA-1: como v3 mas usa SHA-1. Preferida sobre v3 para novas implementacoes
- Versao 7 (v7) — aleatoria ordenada por carimbo de tempo: um formato mais recente que combina um carimbo de tempo Unix com bits aleatorios
Experimente gratuitamente — sem cadastro
Validar um UUID →Como funciona a validacao de UUID
Validar um UUID envolve verificar tanto seu formato quanto suas regras estruturais. Um UUID valido deve corresponder ao padrao hexadecimal canonico 8-4-4-4-12.
- Verificacao de formato — a string deve conter exatamente 32 caracteres hexadecimais organizados em cinco grupos separados por quatro hifens
- Verificacao de versao — o 13o caractere deve ser um numero de versao valido (1, 2, 3, 4, 5, 6, 7 ou 8)
- Verificacao de variante — o 17o caractere deve indicar a variante RFC 4122 (8, 9, a ou b)
Casos de uso comuns
UUIDs sao a escolha padrao para identificadores em muitos dominios do desenvolvimento de software moderno.
- Chaves primarias de banco de dados — UUIDs permitem gerar chaves no lado do cliente sem viagens de ida e volta ao banco de dados
- Identificadores de recursos API — expor UUIDs em vez de inteiros sequenciais previne ataques de enumeracao
- IDs de sessao e correlacao — UUIDs rastreiam solicitacoes atraves de microsservicos
- Nomeacao de arquivos e objetos — sistemas de armazenamento em nuvem usam UUIDs para evitar colisoes de nomes
Melhores praticas
Escolher a versao correta de UUID e manipula-los adequadamente pode prevenir bugs sutis e problemas de desempenho.
- Use v4 para identificadores aleatorios de uso geral — e a escolha mais comum sem dependencias externas
- Use v7 quando precisar de identificadores ordenaveis por tempo — UUIDs v7 se ordenam cronologicamente
- Armazene UUIDs como binario de 16 bytes em bancos de dados em vez de strings de 36 caracteres
- Sempre valide UUIDs recebidos de entrada externa — nunca assuma que strings fornecidas por usuarios estao bem formadas
Perguntas frequentes
Dois UUIDs podem ser iguais?
Embora teoricamente possivel, a probabilidade de colisao com UUIDs v4 e astronomicamente baixa. Voce precisaria gerar aproximadamente 2,7 quintilhoes de UUIDs para ter 50 por cento de chance de uma unica colisao.
Um UUID e sensivel a maiusculas e minusculas?
Nao. O padrao RFC 4122 especifica que UUIDs devem ser exibidos em minusculas, mas implementacoes devem aceitar tanto maiusculas quanto minusculas como equivalentes.
Devo usar UUID ou ULID?
ULIDs sao identificadores de 128 bits lexicograficamente ordenaveis. Se voce precisa de ordenabilidade sem a complexidade de UUID v7, ULIDs sao uma boa alternativa.