Gerador de UUID

Gere UUIDs aleatórios v4 instantaneamente.

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/1041 convida 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.

Perguntas frequentes

O que é um UUID?
Um identificador de 128 bits escrito como 32 dígitos hexadecimais (padrão 8-4-4-4-12). Os UUIDs da versão 4 contêm 122 bits aleatórios, dando cerca de 5,3 × 10³⁶ valores possíveis — únicos na prática sem qualquer coordenação central.
Estes UUIDs são verdadeiramente únicos?
Estatisticamente, sim. Teria de gerar cerca de mil milhões de UUIDs por segundo durante 85 anos para chegar sequer a 50 % de probabilidade de uma colisão. Cada ID aqui vem de uma fonte aleatória criptograficamente segura.
Posso gerar vários UUIDs de uma vez?
Sim — defina a contagem (1 a 50), carregue em Gerar e use Copiar Tudo para obter o lote inteiro, um UUID por linha, para scripts de seed ou folhas de cálculo.
Porque é que o terceiro grupo começa sempre com 4?
Esse dígito é o campo de versão — 4 significa "gerado aleatoriamente". O primeiro carater do quarto grupo é sempre 8, 9, a ou b, que codifica a variante do UUID. Os restantes 122 bits são aleatórios.
Devo usar UUIDs como chaves primárias de base de dados?
São excelentes para sistemas distribuídos e referências não adivinháveis. Guarde-os numa coluna nativa UUID/binária (16 bytes, não texto de 36 bytes), e para tabelas com muitíssimas inserções considere o UUID v7 ordenado no tempo, para melhor localidade de índice.