UUID explicados: v1 vs v4 vs v7 e quando usar cada um
Um UUID é um rótulo de 128 bits escrito como 32 dígitos hexadecimais em cinco grupos — 8, 4, 4, 4 e 12 caracteres — desenhado para que qualquer pessoa possa criar um em qualquer lugar sem pedir a uma autoridade central. Identificam linhas, ficheiros, sessões e chaves API entre sistemas que nunca comunicam entre si.
1. v1: tempo mais máquina
A versão 1 incorpora um carimbo de tempo e um identificador de nó, normalmente derivado da placa de rede. Os ID ordenam-se mais ou menos por hora de criação, o que as bases de dados adoram, mas revelam quando e onde foram criados — um cheiro a privacidade que afastou de v1 a maioria dos sistemas novos.
2. v4: aleatoriedade pura
A versão 4 preenche 122 dos 128 bits a partir de uma fonte aleatória criptográfica, com quatro bits fixos a marcar a versão. As probabilidades de colisão são absurdamente pequenas — gerar mil milhões de ID por segundo durante um século deixa a chance de uma única duplicação muito abaixo das taxas de falha de hardware — mas a aleatoriedade dispersa os índices da base de dados, atrasando inserções em tabelas enormes.
3. v7: o padrão moderno
A versão 7 põe primeiro um carimbo de tempo em milissegundos e preenche o resto ao acaso, dando ID ordenados no tempo sem revelar a identidade da máquina. Projetos novos que precisam de identificadores ordenáveis e adaptados a índices devem escolher v7; é o que produz o nosso gerador de UUID ao lado do clássico v4.
4. Quando não usar um UUID
Códigos curtos legíveis por humanos, números de fatura e tudo o que os utilizadores escrevem à mão ficam melhor servidos por contadores ou codificações compactas — os UUID são longos, impronunciáveis e propensos a gralhas. Nunca uses um UUID como segredo: são únicos, não imprevisíveis, pois v1 e v7 contêm carimbos de tempo e v4, embora aleatório, fica muitas vezes registado ou exposto em URL.