Gerador de UUID v4 online

UUID (Universally Unique Identifier) é um identificador de 128 bits, escrito com 32 caracteres hexadecimais em cinco grupos, usado para identificar registros sem depender de um contador central. Esta ferramenta gera UUID versão 4, criados a partir de números aleatórios do seu navegador.

Atualizado em · Por Leonardo Gaertner

Clique em Gerar.

Achou um resultado errado ou tem uma sugestão? Avise por e-mail.

Como usar

  1. Escolha quantos UUIDs quer gerar, de 1 a 100.
  2. Marque Maiúsculas ou desmarque Com hífens, se precisar.
  3. Clique em Gerar e depois em Copiar tudo.

Como funciona

Um UUID v4 tem 122 bits aleatórios. Os 6 bits restantes são fixos e indicam a versão e a variante: o primeiro caractere do terceiro grupo é sempre 4, e o primeiro do quarto grupo é 8, 9, a ou b.

Os bits aleatórios vêm do gerador criptográfico do navegador, o mesmo usado para funções de segurança. Com tantos bits, a chance de dois UUIDs iguais é tão pequena que, na prática, é ignorada.

Nada é enviado nem armazenado: os UUIDs são criados no seu dispositivo.

Formato

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

em que x é um dígito hexadecimal e y é 8, 9, a ou b

Em código

Para gerar um UUID v4 (aleatório) em código, use a função da própria linguagem. O v7 é ordenável por data e serve melhor como chave de banco.

JavaScript
function uuidv4() {
  // Disponível no navegador (contexto seguro, HTTPS) e no Node.js 19 ou mais novo
  return crypto.randomUUID(); // "3b241101-e2bb-4255-8caf-4136c566a962"
}

UUID v4.

Python
import uuid


def uuid_v4() -> str:
    return str(uuid.uuid4())  # "3b241101-e2bb-4255-8caf-4136c566a962"

UUID v4.

PHP
<?php
function uuidV4(): string
{
    $b = random_bytes(16);
    $b[6] = chr((ord($b[6]) & 0x0f) | 0x40); // versão 4
    $b[8] = chr((ord($b[8]) & 0x3f) | 0x80); // variante RFC 4122
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($b), 4));
}

UUID v4.

JavaScript
function uuidv7() {
  const bytes = crypto.getRandomValues(new Uint8Array(16));
  const ms = BigInt(Date.now());

  // Os 48 primeiros bits são os milissegundos desde 1970
  bytes[0] = Number((ms >> 40n) & 0xffn);
  bytes[1] = Number((ms >> 32n) & 0xffn);
  bytes[2] = Number((ms >> 24n) & 0xffn);
  bytes[3] = Number((ms >> 16n) & 0xffn);
  bytes[4] = Number((ms >> 8n) & 0xffn);
  bytes[5] = Number(ms & 0xffn);

  bytes[6] = (bytes[6] & 0x0f) | 0x70; // versão 7
  bytes[8] = (bytes[8] & 0x3f) | 0x80; // variante da RFC

  const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
  return hex.replace(/^(.{8})(.{4})(.{4})(.{4})/, '$1-$2-$3-$4-'); // 8-4-4-4-12
}

UUID v7, ordenável por data.

Python
import os
import time
import uuid


def uuid7() -> uuid.UUID:
    ms = time.time_ns() // 1_000_000
    b = bytearray(os.urandom(16))
    b[0:6] = ms.to_bytes(6, "big")  # 48 bits de milissegundos desde 1970
    b[6] = (b[6] & 0x0F) | 0x70  # versão 7
    b[8] = (b[8] & 0x3F) | 0x80  # variante da RFC
    return uuid.UUID(bytes=bytes(b))

UUID v7.

Perguntas frequentes

UUID e GUID são a mesma coisa?

Na prática, sim. GUID é o nome usado pela Microsoft para o mesmo tipo de identificador de 128 bits.

Dois UUIDs v4 podem ser iguais?

Teoricamente sim, mas a probabilidade é tão baixa que sistemas do mundo real tratam UUIDs v4 como únicos.

Posso usar UUID como senha ou token secreto?

Não é recomendado. UUID foi feito para identificar registros, não para ser segredo. Para senhas e tokens, use um gerador próprio para isso.

Qual a diferença entre UUID v4 e v7?

O v4 é totalmente aleatório. O v7, definido na RFC 9562, começa com um carimbo de tempo, o que mantém os identificadores em ordem cronológica e ajuda no desempenho de índices de banco de dados.