Pular para o conteúdo
BassoHub
Ferramentas

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

Tipo de identificador

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.

Formato

O padrão (RFC 9562) é minúsculo com hífens; quem lê UUID aceita os dois casos.

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

  1. Escolha o tipo: UUID v4, UUID v7, ULID ou NanoID.
  2. Defina a quantidade (de 1 a 1.000). Para um só, o valor aparece em destaque com o botão Copiar.
  3. Ajuste o formato: maiúsculas e hífens (UUID), maiúsculas (ULID), tamanho e alfabeto (NanoID).
  4. 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.
  5. 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.