Gerador de UUID

Gere UUIDs versão 4 ou versão 7 no seu navegador, um por vez ou cem de uma vez.

Roda inteiramente no seu navegador. Nada é enviado, registrado ou armazenado.

Versão

Um UUID é um identificador de 128 bits que você pode gerar em qualquer lugar, sem pedir a uma autoridade central, e ainda assim esperar que seja único. Duas versões são oferecidas aqui porque resolvem problemas diferentes.

Como funciona

A versão 4 são 122 bits aleatórios, com seis bits fixos marcando a versão e a variante. Ela não carrega informação nenhuma, que é exatamente o que se quer em um identificador público e exatamente o que faz dela uma chave primária agrupada ruim: inserções consecutivas caem em pontos sem relação dentro do índice.

A versão 7, padronizada na RFC 9562, coloca um timestamp de 48 bits em milissegundos na frente de 74 bits aleatórios. Valores gerados depois ordenam depois dos gerados antes, então as inserções ficam no fim do índice e consultas por intervalo de tempo funcionam. A troca é que o identificador revela quando foi criado.

Os bits aleatórios vêm do gerador criptográfico de números aleatórios do seu navegador, a mesma fonte usada para chaves, e não do Math.random.

Perguntas frequentes

Devo usar v4 ou v7?

v7 para chave primária de banco de dados, onde a ordenação mantém o índice saudável. v4 quando o identificador fica exposto e não pode vazar a data de criação, ou quando a ordenação permitiria a alguém inferir quantos registros você cria por hora.

Dois UUIDs podem colidir?

Em princípio sim, na prática não para v4: com 122 bits aleatórios você precisaria gerar bilhões por segundo durante um século para que uma colisão ficasse provável. O risco real é uma fonte aleatória fraca, e é por isso que aqui se usa a criptográfica.

E a v1?

A versão 1 embute o endereço MAC da máquina que a gerou, o que vaza a identidade do hardware. A v7 dá a mesma ordenação no tempo sem isso, e é a substituta moderna.

Bom saber

  • Os valores são gerados no seu navegador e nunca são enviados a lugar nenhum.
  • Esta ferramenta não é determinística: recarregar a página dá identificadores novos, e é essa a intenção.

Fontes

Todas as ferramentas de Código