Gerar UUID
O gerador cria em lote UUID v4 aleatórios com criptografia, UUID v7 ordenáveis por tempo e UUID v1 com registro temporal gregoriano usando a API criptográfica do navegador. Também examina a versão, a variante e o horário de um UUID existente. Nenhum identificador é enviado a um servidor.
O que é um UUID e como v1, v4 e v7 diferem?
Um identificador universalmente único (UUID), também chamado de GUID, é um valor de 128 bits que identifica entidades em sistemas distribuídos sem depender de um cadastro central. Sua representação comum usa 32 dígitos hexadecimais e quatro hífens.
A RFC 4122 foi a especificação principal por muitos anos. Em maio de 2024, a RFC 9562 a substituiu e padronizou novas versões, entre elas v7, cujo início contém um registro temporal.
Estrutura de um UUID de 128 bits
Na forma canônica, os 32 dígitos hexadecimais são agrupados como 8-4-4-4-12, totalizando 36 caracteres com hífens. Um dígito indica a versão e dois bits indicam a variante.
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
time_low time_mid time_hi clock_seq node
M = versão de 4 bits (1, 4 ou 7)
N = variante RFC 4122 / RFC 9562 (8, 9, a ou b)
UUID v4: aleatoriedade criptográfica
Na versão v4, quatro bits identificam a versão e dois a variante. Sobram 122 bits aleatórios, ou 2¹²² ≈ 5,3 × 10³⁶ valores possíveis. O navegador usa uma fonte criptográfica de aleatoriedade.
Para n UUIDs, a probabilidade aproximada de pelo menos uma colisão é p ≈ 1 − exp(−n² / (2 × 2¹²²)). Ela é muito pequena em volumes usuais. Porém, chaves primárias aleatórias podem reduzir a eficiência dos índices de bancos de dados.
UUID v7 e índices de bancos de dados (RFC 9562)
Em um índice B-tree, uma nova chave v4 pode ocupar qualquer página. Quando o índice ultrapassa a memória, leituras dispersas e divisões de páginas podem aumentar. Chaves ordenáveis por tempo tendem a manter inserções próximas.
UUID v7 começa com 48 bits de tempo Unix em milissegundos. Os bits variáveis restantes podem incluir números aleatórios ou um contador, dependendo da implementação. Isso facilita a ordenação temporal sem um gerador central de IDs.
- 48 bits: milissegundos desde a época Unix; o campo alcança o ano 10889.
- 12 bits rand_a: aleatoriedade, fração de milissegundo ou contador para valores do mesmo milissegundo.
- 62 bits rand_b: aleatoriedade ou sequência adicional; o método exato depende do gerador.
UUID v1: o formato temporal antigo
UUID v1 conta intervalos de 100 nanossegundos desde 15 de outubro de 1582. Historicamente, os 48 bits finais podiam conter o endereço MAC da máquina. Esta ferramenta usa um identificador de nó aleatório.
A disposição dos campos impede que as strings v1 sejam ordenadas cronologicamente sem reorganizar bytes. Para sistemas novos que precisam dessa ordem, v7 evita essa disposição e dispensa um endereço MAC.
- Ordem dos campos: time_low aparece no começo, embora contenha os bits menos significativos do tempo.
- Privacidade: implementações antigas podiam incorporar um MAC real e revelar informações do equipamento.
Quais atalhos de teclado o gerador aceita?
Perguntas frequentes
Por que usar v7 em vez de v4 como chave primária?
v4 espalha inserções pelo índice. O registro temporal inicial de v7 permite chaves geralmente ordenadas e pode reduzir divisões de páginas. A ordenação dentro de um mesmo milissegundo depende da implementação.
Qual é a probabilidade de colisão de v4?
v4 tem 122 bits aleatórios. Para n valores, p ≈ 1 − exp(−n² / (2 × 2¹²²)). Mais de 103 trilhões de valores seriam necessários para aproximar uma chance em um bilhão.
Como gerar UUIDs sem contactar um servidor?
O navegador utiliza crypto.randomUUID e crypto.getRandomValues com a fonte criptográfica do sistema operacional. A geração e a inspeção são locais; a ferramenta não transmite os UUIDs.
Qual tempo v1 codifica e por que foi substituído?
v1 conta períodos de 100 nanossegundos desde 15 de outubro de 1582. Versões antigas podiam expor um MAC e suas strings não ordenavam por tempo. v7 usa milissegundos Unix e bits variáveis aleatórios.
Posso gerar milhares de UUIDs para dados de teste?
Sim. São até 5.000 por lote, com opções de letras maiúsculas, hífens, aspas, chaves e separação por linhas, vírgulas ou array JSON.
UUIDs são seguros como tokens?
v4 tem 122 bits aleatórios, mas UUIDs podem aparecer em URLs e logs. Para sessões ou redefinição de senha, use tokens emitidos e revogáveis pelo servidor. v1 e v7 revelam o momento de criação.