O que é um UUID v3?
Um UUID v3 é calculado aplicando MD5 ao UUID do espaço de nomes junto com o nome, e depois fixando os bits de versão e variante. O mesmo par (espaço de nomes + nome) sempre produz o mesmo UUID.
O MD5 já não é considerado seguro, mas aqui ele só serve para derivar identificadores, não para proteger nada. Se puder escolher, o v5 faz o mesmo com SHA-1.
Como usar
- Escolha o espaço de nomes: DNS, URL, OID ou X.500.
- Digite o nome, por exemplo
example.com. - Clique em Gerar: o resultado é sempre idêntico para esse par.
Casos de uso
- Identificadores estáveis para recursos que já têm uma chave natural.
- Sincronizar registros entre sistemas sem uma base comum.
- Gerar chaves reproduzíveis em scripts e testes automatizados.
As versões de UUID em resumo
| Versão | Ordenável | Baseada em | Use para |
|---|---|---|---|
| v1 | Não | Carimbo de tempo + endereço MAC | Sistemas antigos que ainda esperam v1 |
| v3 | Não | Hash MD5 de um nome | Identificadores determinísticos quando MD5 é exigido |
| v4 | Não | 122 bits aleatórios | Praticamente qualquer identificador de uso geral |
| v5 | Não | Hash SHA-1 de um nome | Quando o mesmo nome precisa dar sempre o mesmo ID |
| v6 | Sim | Carimbo de tempo reordenado | Identificadores ordenáveis sem abrir mão do aleatório |
| v7 | Sim | Tempo Unix em milissegundos | Chaves primárias de banco e IDs de eventos |
| v8 | Não | Seu próprio layout de bits | Formatos de fabricante ou experimentais |
As sete versões têm 128 bits e são escritas no mesmo formato 8-4-4-4-12. Só o significado dos bits muda.
Perguntas frequentes
Por que o mesmo nome sempre dá o mesmo UUID?
Porque o v3 é uma função determinística: o UUID é calculado apenas a partir da entrada, sem sorteio nem relógio. Isso é uma propriedade, não um defeito — o identificador pode ser reconstruído sem precisar ser guardado.
v3 ou v5?
Se você está começando agora, v5: usa SHA-1 e não carrega as fraquezas do MD5. O v3 continua existindo para sistemas que já o usam.
O UUID muda se eu trocar o espaço de nomes?
Muda por completo. O espaço de nomes faz parte da entrada, então o mesmo nome em DNS e em URL produz dois UUIDs diferentes.