O que é um UUID?
Um UUID (Identificador Único Universal) é um valor de 128 bits representado como uma string de 36 caracteres, como 550e8400-e29b-41d4-a716-446655440000. O formato e a semântica das versões são definidos pela RFC 4122 para v1 a v5, e pela RFC 9562 para as versões mais novas v6, v7 e v8. Esta ferramenta gera v4 (puramente aleatória), v1 (carimbo de tempo mais ID de nó aleatório) e v7 (prefixo de carimbo Unix em milissegundos mais sufixo aleatório, ordenável por momento de geração) — tudo no seu navegador, usando a Web Crypto API da plataforma. Nenhum dado é enviado para um servidor.
Como funciona a geração de UUID?
Cada versão equilibra determinismo, ordenabilidade e entropia de forma diferente. A ferramenta escolhe o algoritmo certo com base na sua seleção:
- v4 (aleatória) chama o
crypto.randomUUID()do navegador, que retorna 122 bits de aleatoriedade criptográfica com os 6 bits fixos (versão0100e variante10) nas posições corretas. Colisões são astronomicamente improváveis — seria necessário gerar aproximadamente 2,71 quintilhões de UUIDs v4 para encontrar uma única duplicata com 50% de probabilidade. - v1 (carimbo de tempo + nó) empacota um carimbo gregoriano de 60 bits (tiques de 100 nanossegundos desde 15-10-1582) em
time_low/time_mid/time_hi_and_version, define o nibble de versão como0001, escolhe uma sequência de relógio de 14 bits com os bits de variante definidos e usa um ID de nó aleatório de 48 bits com o bit multicast forçado em um (a RFC 4122 §4.5 permite explicitamente um ID de nó aleatório quando não há MAC de hardware disponível — o bit multicast o marca como não-MAC). - v7 (carimbo de tempo ordenável), conforme a RFC 9562 §5.7, dispõe um carimbo Unix de 48 bits em milissegundos em big-endian, depois a versão de 4 bits
0111, então 12 bits aleatórios, depois a variante de 2 bits10, e mais 62 bits aleatórios. Como o carimbo está nos bits mais significativos, UUIDs v7 ordenam lexicograficamente na ordem de geração — uma propriedade que nenhuma outra versão de UUID oferece sem codificação extra. - Toda a aleatoriedade vem de
crypto.getRandomValues(), o RNG criptograficamente seguro do navegador. Tanto v1 quanto v7 incluem uma proteção monotônica intra-tique para que duas chamadas consecutivas dentro do mesmo tique de relógio mantenham a segunda ordenada acima da primeira — importante para gerações em lote que disputam com o relógio de milissegundos. - O pipeline de formatação roda após a geração. Você pode remover hífens, mudar para maiúsculas, envolver o valor em chaves (
{…}— a convenção GUID da Microsoft) ou renderizar os 16 bytes brutos em base64 (saída de 22 caracteres, sem padding). O modo base64 substitui as outras opções de formato porque base64 é sua própria representação.
Por que usar este gerador UUID?
- Nada sai do seu navegador. A Web Crypto API executa localmente; a página não faz nenhuma requisição de rede após o carregamento inicial do documento. Abra o DevTools, clique em Gerar e o painel Rede permanecerá em silêncio.
- Saída conforme a RFC. v4 segue a RFC 4122 §4.4, v1 segue §4.2 e §4.5, e v7 segue a RFC 9562 §5.7. O nibble de versão e os bits de variante estão onde os padrões indicam — todo UUID passa na expressão regular canônica da versão.
- v7 ordenável para chaves de banco. Um UUID v7 usado como chave primária clustered em Postgres, MySQL ou SQL Server mantém inserções em append no índice — sem divisões de página, sem I/O aleatória — enquanto permanece globalmente único. v4 não consegue isso porque seus bits são aleatórios.
- Geração em lote sem limites de taxa. Gere 1, 10, 100 ou 1.000 UUIDs de uma vez. Não há cota nem cadastro — a ferramenta roda na sua aba, então o limite é a sua CPU, não o plano de API de um fornecedor.
Quais são as aplicações comuns dos UUIDs?
UUIDs aparecem onde um sistema precisa de um identificador globalmente único sem coordenar com uma autoridade central:
- Chaves primárias de banco de dados. Inteiros autoincrementais vazam contagens de linhas e quebram o sharding. UUIDs são estáveis entre shards, seguros para mesclar entre regiões e (com v7) mantêm inserções no B-tree quentes sem divisões de página. Uma aplicação típica gera o UUID no cliente, envia no INSERT e nunca precisa fazer round-trip ao servidor para obter a chave.
- IDs de correlação de requisição. O middleware HTTP anexa um UUID v4 a cada requisição entrante, registra em cada span e propaga adiante (frequentemente como cabeçalho
X-Request-Id). Quando um cliente relata um bug, o engenheiro de suporte cola o ID e o trace inteiro da requisição aparece — entre serviços e fusos horários — sem ambiguidade. - Chaves de idempotência. APIs de pagamento (Stripe, Adyen, Square) aceitam um cabeçalho
Idempotency-Keypara que uma requisição tentada novamente nunca cobre o cliente duas vezes. Um UUID gerado no cliente garante que a chave seja única por operação lógica, que é o contrato exigido por essas APIs.
Como é um exemplo de UUID?
Em Node.js ou em um navegador moderno, a linha única crypto.randomUUID() retorna um UUID v4 novo — por exemplo 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Use-o como ID de requisição ou chave de idempotência. Quando o UUID vai para uma coluna de banco que será a chave primária clustered, gere v7: dois valores v7 produzidos com um milissegundo de diferença, como 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 e 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, ordenam lexicograficamente na ordem de geração. O tipo uuid do Postgres armazena ambas as versões identicamente — a diferença aparece no momento da gravação do índice, onde v7 anexa à direita do B-tree enquanto v4 espalha inserções e força I/O aleatória.
Este Gerador de UUID faz um único trabalho: transformar um clique em um ou vários identificadores conformes ao RFC, formatados como você precisa, sem enviar sua requisição a um servidor. Escolha uma versão, escolha uma quantidade, escolha um formato — gere, copie, siga em frente.