O que é UUID v5?
Versão 5 do UUID é um identificador de 128 bits baseado em namespace (string de 36 caracteres) definido na RFC 4122. Combina:
- UUID do namespace: UUID predefinido ou personalizado para delimitar a geração
- Name: Valor de string definido pelo usuário dentro do namespace
- Hash SHA-1: Algoritmo criptográfico usado para gerar o resultado
Exemplo de formato: 2ed6657d-e927-5eb1-9a03-0242ac130003
Como o UUID v5 funciona
- Selecione um UUID de namespace (predefinido ou personalizado)
- Concatene o UUID do namespace e a string do nome
- Calcule o hash SHA-1 do valor concatenado
- Defina os bits de versão (0101) e os bits de variante (10)
- Montar como 32 dígitos hexadecimais com hífens: formato 8-4-4-4-12
Vantagens e considerações
Advantages | Considerations |
---|---|
|
|
Estrutura do UUID v5
Bits | Content |
---|---|
0-47 | Primeiros 48 bits do hash SHA-1 |
48-51 | Versão (0101 para v5) |
52-63 | Próximos 12 bits do hash SHA-1 |
64-65 | Variante (10 para RFC4122) |
66-127 | 62 bits restantes do hash SHA-1 |
UUID v5 vs. outras versões
Version | Baseado em | Caso de uso | Privacy |
---|---|---|---|
UUID v1 | Tempo + MAC | IDs ordenados por tempo | ⚠️ Revela MAC |
UUID v3 | Namespace + MD5 | IDs determinísticos | ✅ Privado |
UUID v4 | Random | IDs aleatórios seguros | ✅ Privado |
UUID v5 | Namespace + SHA-1 | IDs determinísticos | ✅ Privado |
UUID v6 | Tempo (reordenado) | IDs ordenáveis | ⚠️ Revela MAC |
UUID v7 | Tempo + aleatório | IDs ordenáveis | ✅ Privado |
Namespaces predefinidos
Namespace | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Para nomes de domínio |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Para URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Para OIDs ISO |
DN X.500 | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Para nomes distintos X.500 |
Casos de uso comuns
- Endereçamento de conteúdo: IDs consistentes para conteúdo idêntico
- Sistemas distribuídos: Recursos nomeados entre sistemas
- Mapeamento de URL: Convertendo URLs em identificadores estáveis
- Gerenciamento de configuração: Rastreando itens de configuração nomeados
- Desduplicação de dados: Identificando registros idênticos
- Federation: Identificadores consistentes entre sistemas
Perguntas frequentes
UUID v5 é melhor que UUID v3?
Sim, para a maioria dos casos de uso. UUID v5 usa SHA-1 que é criptograficamente mais forte que o algoritmo MD5 usado no UUID v3. No entanto, ambos fornecem geração determinística.
Valores UUID v5 podem colidir?
Colisões são teoricamente possíveis, mas extremamente improváveis na prática devido às propriedades do SHA-1. Usar namespaces ou strings de nome diferentes praticamente elimina o risco de colisão.
SHA-1 é seguro o suficiente para UUID v5?
Para propósitos de UUID, SHA-1 permanece adequado apesar de suas fraquezas criptográficas. UUID v5 não é destinado a fins de segurança, mas para gerar identificadores consistentes.
Posso criar meu próprio namespace para UUID v5?
Sim. Embora a RFC 4122 defina namespaces padrão (DNS, URL, OID, X.500), você pode criar namespaces personalizados usando qualquer UUID válido, tipicamente um UUID v4 aleatório.
O mesmo nome sempre gera o mesmo UUID v5?
Sim, mas somente dentro do mesmo namespace. O mesmo nome em namespaces diferentes gerará UUIDs diferentes, o que é uma característica chave para organizar identificadores.