Gerador de UUID
Gere UUID v4, UUID v7, ULID e NanoID no navegador, um ou até 1.000 de uma vez, e valide qualquer UUID para ver versão, variante e horário.
Gerador de UUID, ULID e NanoID
O mais usado: 122 bits aleatórios, sem ordem nenhuma. Serve para quase tudo quando você só precisa de um ID único.
De 1 a 1.000 por vez.
Validar e inspecionar
Cole um UUID (qualquer versão, com ou sem hífens, chaves ou urn:uuid:) ou um ULID para ver o que ele carrega. Com vários, um por linha, a ferramenta valida a lista inteira.
Para validar uma lista, cole um por linha (dá para colar direto de JSON, SQL ou planilha).
Tudo roda no seu navegador: nada do que você gera ou digita é enviado ou guardado. Os valores vêm do gerador criptográfico do aparelho (crypto.getRandomValues).
O que é um UUID
UUID (Universally Unique Identifier, também chamado de GUID no mundo Microsoft) é um número de 128 bits usado como identificador único sem precisar de uma central que distribua números. Ele costuma ser escrito em 32 dígitos hexadecimais separados por hífens no formato 8-4-4-4-12, por exemplo 017f22e2-79b0-7cc3-98c4-dc0c0c07398f. A especificação atual é a RFC 9562 (2024), que substituiu a antiga RFC 4122 e criou as versões 6, 7 e 8.
Bancos de dados, APIs, filas de mensagens e aplicativos offline usam UUIDs para criar IDs em qualquer lugar (no servidor, no celular, em vários servidores ao mesmo tempo) sem consultar ninguém e sem colidir na prática.
Como usar o gerador
- Escolha o tipo: UUID v4, UUID v7, ULID ou NanoID.
- Defina a quantidade (de 1 a 1.000). Para um só, o valor aparece em destaque com o botão Copiar.
- Ajuste o formato: maiúsculas e hífens (UUID), maiúsculas (ULID), tamanho e alfabeto (NanoID).
- Em lote, escolha o formato da lista (um por linha, JSON ou entre aspas, pronto para colar num
IN (...)de SQL) e use Copiar tudo ou Baixar. - Para conferir um identificador que você já tem, cole no validador: ele mostra versão, variante, o horário embutido (v1, v6, v7 e ULID) e o mesmo valor convertido entre UUID e ULID.
v4, v7, ULID ou NanoID: qual usar?
- UUID v4 (36 caracteres; ordena por tempo: não): ID único genérico, tokens internos, nomes de arquivo.
- UUID v7 (36 caracteres; ordena por tempo: sim): chave primária em banco de dados, eventos, logs.
- ULID (26 caracteres; ordena por tempo: sim): quando você quer ordem por tempo e um texto mais curto e legível.
- NanoID (21 caracteres, ajustável; ordena por tempo: não): IDs em URL, links curtos, códigos públicos.
- UUID v4 tem 122 bits aleatórios. É o mais compatível: qualquer linguagem e banco de dados entende.
- UUID v7 começa com o horário Unix em milissegundos (48 bits) e completa com bits aleatórios. Como IDs novos são sempre "maiores" que os antigos, os registros entram no fim do índice do banco.
- ULID guarda os mesmos 128 bits (48 de horário + 80 aleatórios) em 26 caracteres de base32 de Crockford, que não usa as letras I, L, O e U para evitar confusão com 1 e 0.
- NanoID é um padrão de ID curto com alfabeto seguro para URL. Com 21 caracteres de 64 símbolos chega a 126 bits, quase o mesmo que o UUID v4.
Por que o UUID v7 é melhor para banco de dados
Índices do tipo B-tree (o padrão em PostgreSQL, MySQL e SQL Server) funcionam melhor quando os valores novos chegam em ordem. Com UUID v4, cada inserção cai num ponto aleatório do índice: mais páginas tocadas, mais fragmentação e cache menos eficiente em tabelas grandes. Com UUID v7 (ou ULID), as inserções vão para o fim, como num ID autoincremental, sem perder a vantagem de gerar o ID fora do banco.
A contrapartida: o horário de criação fica visível dentro do ID. Se isso for sensível (por exemplo, revelar quando uma conta foi criada), use v4 para os IDs expostos ao público.
Colisão: dá para repetir?
Dá, mas a chance é tão pequena que, na prática, não acontece. Pelo paradoxo do aniversário, para existir 1% de chance de uma única repetição entre UUIDs v4 seria preciso gerar cerca de 3,3 × 10¹⁷ deles (330 quatrilhões). No UUID v7 e no ULID, uma colisão só é possível entre IDs criados no mesmo milissegundo, e ainda assim há 74 ou 80 bits de sorteio por milissegundo.
O que de fato causa repetição é gerador ruim: Math.random(), semente fixa ou máquinas virtuais clonadas com o mesmo estado. Esta ferramenta usa crypto.getRandomValues, o gerador criptográfico do navegador.
Como a ferramenta funciona
- Tudo roda no seu navegador. Nenhum ID gerado ou colado no validador é enviado ou guardado.
- v7: segue o método 1 da RFC 9562, com um contador de 42 bits que recomeça num valor aleatório a cada milissegundo. Mesmo gerando 1.000 IDs no mesmo milissegundo, cada um vem depois do anterior.
- ULID: no mesmo milissegundo, a parte aleatória é incrementada, como manda a especificação.
- NanoID: os caracteres são sorteados por rejeição (sem usar resto de divisão), então todos os símbolos do alfabeto têm exatamente a mesma chance.
Perguntas frequentes
UUID e GUID são a mesma coisa? Sim. GUID é o nome usado pela Microsoft; o formato é o mesmo. GUIDs antigos podem ter a variante "Microsoft", que o validador identifica.
Maiúsculas ou minúsculas? A RFC recomenda gerar em minúsculas, e quem lê UUID deve aceitar os dois casos.
Posso guardar sem hífens? Pode. Melhor ainda: em PostgreSQL use o tipo uuid (16 bytes), em vez de texto.
Dá para descobrir quando um UUID foi criado? Só nas versões com horário (v1, v6, v7) e no ULID. O validador mostra a data em UTC e no seu fuso. Num UUID v4 não há horário nenhum.
O NanoID substitui o UUID? Para IDs em URL e códigos curtos, sim. Para colunas de banco que já usam o tipo uuid ou para integração entre sistemas, o UUID continua sendo o formato mais aceito.