fixmint
PT

UUID v4 ou v7: qual usar e por que isso importa

Por · · atualizado em 8 de novembro de 2026 · 5 min de leitura

Use UUID v4 quando precisar de um identificador aleatório e nada mais. Use UUID v7 quando o identificador for uma chave de banco de dados ou quando quiser que os IDs fiquem em ordem de criação. As duas versões têm 128 bits e são escritas no mesmo formato de 36 caracteres, então a diferença está em como os bits são organizados. O gerador de UUID abaixo cria qualquer uma das versões, de 1 a 500 por vez, no seu navegador.

Gerador de UUIDPreciso de IDs únicos para o códigoUse de graça

Como é um UUID

Um UUID, ou identificador único universal, é um número de 128 bits escrito como 32 dígitos hexadecimais em cinco grupos: 8, 4, 4, 4 e 12 dígitos, separados por hífens. Um exemplo é 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

Duas partes do número são fixas. Quatro bits guardam a versão, então o terceiro grupo começa com 4 na v4 ou com 7 na v7. Dois bits guardam a variante, então o quarto grupo começa com 8, 9, a ou b. O restante carrega o próprio identificador. Os bits de variante e de versão são o motivo pelo qual um UUID v4 tem 122 bits aleatórios, e não 128.

UUID v4: aleatório

Um UUID v4 é aleatório, exceto pelos bits fixos. Seus 122 bits aleatórios tornam uma repetição extremamente improvável. Imagine que você gere um bilhão de UUIDs v4. A chance de que quaisquer dois sejam iguais é aproximadamente n ao quadrado dividido por duas vezes o número de valores possíveis, o que dá cerca de 10 elevado a menos 19. Em outras palavras, colisões não são algo que você precise prever no projeto.

Essa estimativa pressupõe que o gerador tire seus bits de uma fonte criptográfica de aleatoriedade. Um gerador previsível enfraqueceria essa estimativa. Esta ferramenta usa a fonte criptográfica de aleatoriedade do navegador, por meio de crypto.randomUUID ou crypto.getRandomValues.

UUID v7: o tempo primeiro

A RFC 9562 define a v7. Seus primeiros 48 bits guardam o tempo Unix em milissegundos, então um ID criado depois tem a primeira parte maior do que um ID criado antes. Depois vêm os bits de versão, em seguida bits aleatórios, os bits de variante e mais bits aleatórios. Parte do espaço aleatório pode guardar um contador, o que mantém os IDs em ordem quando vários são criados dentro do mesmo milissegundo.

Como o tempo vem primeiro, ordenar IDs v7 como texto, em um mesmo padrão de maiúsculas e minúsculas, os coloca na ordem de criação, com precisão de milissegundo. Isso funciona porque os dígitos hexadecimais têm largura fixa e o tempo está nos caracteres iniciais.

O tempo também fica visível. Quem lê um UUID v7 consegue ver aproximadamente quando ele foi criado. Você pode verificar isso sozinho no campo Inspecionar do gerador de UUID, que converte os primeiros 48 bits de volta em data e hora.

Por que o v7 combina com índices de banco de dados

Um índice de banco de dados costuma ser uma B-tree, uma estrutura mantida em ordem pela chave. Quando a chave é aleatória, como no v4, cada nova linha cai em um ponto aleatório do índice. O banco então precisa escrever em muitas partes diferentes do índice, o que causa mais divisões de páginas e mais falhas de cache. Em uma tabela grande, esse trabalho se acumula.

Uma chave v7 é maior do que quase todas as chaves já existentes no índice, porque a parte de tempo só cresce. As novas linhas entram perto do fim do índice, de forma parecida com um número de incremento automático. As páginas recentes do índice ficam na memória e as gravações continuam organizadas. A diferença aparece mais em tabelas grandes que crescem o tempo todo, e é difícil de notar em uma tabela pequena.

Escolhendo entre v4 e v7

  • Chaves primárias de banco de dados ou qualquer tabela que cresce com o tempo: v7. O índice continua organizado.
  • Logs, eventos ou mensagens que você costuma ordenar por tempo: v7, porque o próprio ID carrega a ordem.
  • IDs públicos em que a hora de criação deve permanecer privada: v4. Um ID v7 revela quando foi criado.
  • Muitos dispositivos com relógios pouco confiáveis: v4 ou v7 continuam únicos, porque os bits aleatórios fazem esse trabalho. Só a ordenação do v7 depende de os relógios estarem certos.

As duas versões são padrão, mas bibliotecas mais antigas podem conhecer apenas a v4. A RFC 4122 descreveu as versões 1 a 5 por muitos anos. A RFC 9562 foi publicada em maio de 2024, substitui a RFC 4122 e define as versões 6, 7 e 8. Confira se a versão da sua biblioteca oferece suporte à v7 antes de depender dela.

Armazenando UUIDs

Um UUID escrito como texto ocupa 36 caracteres. Seus 16 bytes podem ser guardados em formato binário, que ocupa bem menos espaço. Muitos bancos de dados têm um tipo UUID nativo ou uma coluna binária de 16 bytes para isso, e a comparação é mais rápida do que com texto.

Escolha um formato e mantenha-o. Maiúsculas, minúsculas, hífens e chaves são o mesmo UUID para uma pessoa, mas um banco de dados ou uma comparação de strings pode tratá-los como valores diferentes. As opções de maiúsculas, sem hífens e com chaves do gerador existem para sistemas que exigem esses formatos.

Nunca use um UUID como segredo

Um UUID é um identificador, não uma senha, um token de sessão ou uma chave de acesso. Ele foi feito para ser único, não para ser impossível de adivinhar. Um UUID v7 ainda carrega a hora de criação. E identificadores acabam colados em links, logs, e-mails e capturas de tela, onde qualquer pessoa que os veja pode reutilizá-los.

O controle de acesso pertence ao servidor. Quem conhece um ID não deve ser automaticamente autorizado a ver ou alterar o registro que ele nomeia. Para senhas, frases-senha ou tokens, use um gerador feito para segredos. O gerador de senha cria senhas aleatórias ou frases-senha de palavras no seu dispositivo, com aleatoriedade segura, e estima a força delas. Para entender por que o tamanho e a aleatoriedade importam, leia senhas fortes e entropia.

Como usar a ferramenta

  1. Escolha a versão 4 para IDs aleatórios, ou a versão 7 para IDs ordenados por tempo.
  2. Defina a quantidade, de 1 a 500 por vez.
  3. Marque maiúsculas, sem hífens ou com chaves se o seu código exigir um formato específico.
  4. Copie todos, ou baixe a lista como um arquivo .txt.
  5. Cole qualquer UUID em Inspecionar para ver sua versão, sua variante e, no caso do v7, o tempo embutido nele.

Respostas rápidas

Um UUID v4 é único? Na prática, sim. Seus 122 bits aleatórios tornam uma repetição tão improvável que você não precisa verificar se ela ocorreu.

Devo usar v7 para tudo? Nem sempre. Use v7 para chaves de banco de dados e para tudo o que é ordenado por tempo. Use v4 quando a hora de criação deve ficar oculta.

Posso usar um UUID como senha? Não. Ele é um identificador. Use um gerador de senhas para qualquer coisa que precise continuar secreta.

A ferramenta envia os IDs para algum lugar? Não. Os IDs são criados e exibidos no seu navegador e não são enviados a nenhum servidor.

Traduzido do Original em inglês com auxílio de IA.

Comentários

    Ainda não há comentários. Seja o primeiro.

    Sua nota (opcional)

    Seu e-mail nunca é exibido nem guardado.

    Capa de Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Por que conjuntos de dados públicos, gratuitos e abertos vão moldar a inteligência artificial geral tanto quanto os algoritmos e a capacidade de computação.

    $4.99Compre na GumroadEm inglês