O Que é um UUID v4
Um UUID (Identificador Universalmente Único) é um valor de 128 bits escrito como 32 dígitos hexadecimais num padrão 8-4-4-4-12, como f47ac10b-58cc-4372-a567-0e02b2c3d479. Os UUIDs da versão 4 são aleatórios: dos 128 bits, 122 são extraídos de uma fonte aleatória criptograficamente segura, enquanto 6 são fixados pela especificação — o 4 a iniciar o terceiro grupo marca a versão, e o primeiro carater do quarto grupo é sempre 8, 9, a ou b (os bits de variante). Isso deixa 2¹²² ≈ 5,3 × 10³⁶ valores possíveis, que é porque ninguém coordena UUIDs e as colisões continuam a nunca acontecer na prática.
Geração em Massa, Devidamente Aleatória
Defina uma contagem de 1 a 50 e carregue em Gerar; Copiar Tudo coloca o lote na área de transferência, um UUID por linha, pronto a colar num script SQL de seed, num ficheiro de fixtures ou numa coluna de folha de cálculo. Cada UUID vem do crypto.randomUUID() nativo do navegador — uma API apoiada em CSPRNG, não o Math.random(). Essa distinção importa: o Math.random() é previsível o suficiente para que "UUIDs" construídos a partir dele possam colidir ou ser adivinhados; a fonte da Web Crypto não pode.
Onde os UUIDs Batem os IDs Auto-Incrementais
- Sistemas distribuídos: qualquer cliente ou serviço pode cunhar um ID com zero coordenação — sem contador central, sem ida e volta à base de dados.
- Fusão de dados: linhas criadas offline ou em bases de dados separadas podem ser combinadas sem conflitos de ID.
- Referências não adivinháveis: os IDs sequenciais divulgam informação (
/invoice/1041convida a sondar/invoice/1042); os UUIDs aleatórios não se enumeram. São, porém, não adivinháveis — não substituem verificações de autorização reais. - Gerados antes da inserção: o seu código conhece o ID antes de a linha existir, o que simplifica ligar registos relacionados numa transação.
Notas Práticas e Armadilhas
- Armazenamento: um UUID ocupa 16 bytes como coluna nativa
UUID/binária, mas 36 bytes como texto — prefira o tipo nativo em Postgres ou MySQL 8. - Localidade de índice: os valores aleatórios v4 dispersam-se por um índice B-tree, o que pode abrandar tabelas enormes com muitas inserções. O UUID v7 (ordenado no tempo) resolve isto; o v4 continua a ser o padrão certo para uso geral.
- Maiúsculas: a forma canónica é em minúsculas, e as comparações devem ser sem distinção de maiúsculas.
- UUID = GUID: o termo da Microsoft para o mesmo formato de 128 bits.
A geração corre inteiramente no seu navegador — nenhum servidor vê ou regista os identificadores, por isso são seguros de usar diretamente em dados de produção. Precisa de segredos aleatórios em vez de IDs? Use o gerador de palavras-passe. A fazer impressão digital de conteúdo existente? Isso é o gerador de hash.