Gerador de UUID v4

Gere valores UUID v4 online: 122 bits aleatórios, formato UUID padrão e resultados prontos para copiar no seu browser.

Formato
IDs gerados
Pronto. Gere valores UUID v4 diretamente no seu browser.

Como este ID é estruturado

Estrutura
UUID de 128 bits com versão 4 e bits de variante RFC, exibido em grupos hexadecimais de 8-4-4-4-12.
Entropia
122 bits aleatórios obtidos via crypto.randomUUID().
Tempo
Nenhum; os IDs v4 não revelam quando foram criados.
Risco de colisão
As colisões são controladas por 122 bits aleatórios, o que supera com folga os volumes práticos de sistemas comuns.
Exemplo
38dd44b0-eded-460a-aa18-beccf729bbed

Os seus IDs são gerados localmente com alta aleatoriedade no navegador. Nada é enviado para o BroBroGo.

Perguntas frequentes

Quando devo usar o UUID v4?

Use o UUID v4 quando precisar de identificadores aleatórios opacos que não dependam da ordem de criação e não exponham informações temporais.

Posso remover os hífens ou deixar o resultado em maiúsculas?

Sim. A ferramenta de UUID v4 possui um painel de opções onde pode ativar ou desativar os hífens e definir a saída em letras maiúsculas.

O que é um UUID v4 e como é gerado?

Um UUID v4 (Universally Unique Identifier, versão 4) é um identificador de 128 bits, dos quais 122 são preenchidos com aleatoriedade pura e os restantes 6 bits são fixados para indicar a versão e a variante. A representação canónica consiste em 36 caracteres hexadecimais no formato 8‑4‑4‑4‑12, por exemplo f47ac10b-58cc-4372-a567-0e02b2c3d479. O «4» no terceiro grupo indica que se trata da versão 4; os dois bits mais significativos do quarto grupo (o primeiro caractere após o segundo hífen) codificam a variante, tipicamente 10 para a variante RFC 4122.

O gerador aqui descrito produz um ou mais UUID v4 utilizando a função crypto.randomUUID() do navegador, que recorre a uma fonte de aleatoriedade criptograficamente segura. Cada identificador é independente e instantaneamente gerado no lado do cliente, sem qualquer comunicação com um servidor. O utilizador pode escolher o número de UUIDs (de 1 a 100) e, sempre que altera qualquer opção — formato, contagem, maiúsculas ou hífenes — a lista é imediatamente regenerada.

A estrutura de 122 bits aleatórios significa que, ao contrário de UUID v1 (baseado no tempo e no endereço MAC) ou v7 (ordenado temporalmente), os UUID v4 não transportam qualquer informação de momento ou local de criação. São, por isso, verdadeiramente não sequenciais e adequados para cenários onde a correlação temporal deve ser evitada.

Aleatoriedade e probabilidade de colisão

Com 122 bits de entropia, a probabilidade de colisão entre dois UUID v4 gerados independentemente é extremamente baixa. Para se ter uma noção concreta, a fórmula de probabilidade de pelo menos uma colisão num conjunto de n identificadores é aproximadamente:

P ≈ 1 - e^(-n² / (2 × 2¹²²))

Substituindo valores práticos: se gerar mil milhões de UUIDs (10⁹), a probabilidade de uma única colisão é inferior a 10⁻¹⁸. Para efeitos de comparação, é muito mais provável que um erro de hardware ou uma falha na fonte de aleatoriedade produza um UUID duplicado do que o acaso puro. Esta característica torna o UUID v4 a escolha padrão para sistemas distribuídos onde não existe coordenação central e cada nó precisa de gerar chaves únicas sem consultar os outros.

É importante sublinhar que o gerador aqui apresentado não armazena estado nem mantém um contador. Cada UUID é independente, e a aleatoriedade é fornecida pelo sistema operativo através de interfaces como /dev/urandom (Linux), CryptGenRandom (Windows) ou SecRandomCopyBytes (iOS/macOS). O navegador expõe essa capacidade via a API Web Crypto, que é a mesma utilizada para geração de chaves TLS e tokens de autenticação.

Impacto na indexação de bases de dados

A utilização de UUID v4 como chave primária em bases de dados relacionais apresenta um custo bem conhecido: a fragmentação de índices. Ao contrário de chaves sequenciais (como INT AUTO_INCREMENT) ou de identificadores ordenados temporalmente (ULID, UUID v7), os UUID v4 distribuem-se aleatoriamente no espaço dos 128 bits. Quando inseridos num índice B‑tree, os novos valores podem cair em qualquer posição, obrigando a frequentes reequilíbrios e divisões de páginas.

Para bases de dados que armazenam milhões de registos, o impacto prático é um aumento significativo do tempo de escrita e da utilização de espaço em disco, especialmente em tabelas com índices clustered (como no InnoDB do MySQL). Há duas formas comuns de mitigar este problema:

  • Usar uma chave primária numérica (por exemplo, BIGINT AUTO_INCREMENT) para o índice clustered e armazenar o UUID apenas como chave candidata ou identificador lógico.
  • Substituir o UUID v4 por UUID v7, que mantém 48 bits de timestamp e ordena cronologicamente, reduzindo drasticamente a fragmentação.

Contudo, em sistemas onde a aleatoriedade é um requisito de segurança — por exemplo, para impedir a enumeração de registos — a fragmentação é um custo aceitável. O gerador desta página permite produzir rapidamente conjuntos de UUID v4 para testes de carga e avaliação desse impacto antes de uma decisão de arquitetura.

Comparação com identificadores baseados no tempo

O mesmo seletor de formato que permite escolher UUID v4 também inclui UUID v7, ULID e NanoID. Cada um serve um propósito diferente:

Formato Bits aleatórios Ordenação temporal Tamanho Indicação de momento
UUID v4 122 Não 36 chars (com hífenes) Nenhuma
UUID v7 74 (restantes são timestamp de 48 bits + variante) Sim (cronológica) 36 chars Precisão de milissegundos
ULID 80 (restantes são timestamp de 48 bits) Sim 26 chars (base32) Precisão de milissegundos
NanoID Variável (tipicamente 126) Não 21 chars (padrão) Nenhuma

A principal vantagem do UUID v4 sobre as alternativas ordenadas é a imprevisibilidade total: dois UUIDs gerados no mesmo milissegundo não têm qualquer relação entre si. Isto é desejável para tokens de API, IDs de sessão ou identificadores de transações financeiras onde a sequência temporal não deve ser exposta. Já o UUID v7 e o ULID são preferíveis para chaves primárias em bases de dados com elevada taxa de escritas, pois os novos valores são inseridos perto do fim do índice, mantendo a árvore mais compacta.

O gerador desta página expõe opções de formatação (maiúsculas, hífenes) que são exclusivas dos formatos UUID (v4 e v7). As outras opções (ULID, NanoID) utilizam controlos diferentes, porque as suas representações canónicas não incluem hífenes e a capitalização tem regras próprias.

Personalização do formato: maiúsculas e hífenes

Duas opções adicionais permitem adaptar a saída do gerador:

Maiúsculas (Uppercase) – Quando ativada, as letras hexadecimais a a f são convertidas para A a F. A norma RFC 4122 não impõe maiúsculas ou minúsculas, mas alguns sistemas (por exemplo, bases de dados que comparam cadeias de forma sensível a maiúsculas) podem exigir consistência. Notar que o separador «4» no terceiro grupo mantém‑se como dígito; apenas as letras são capitalizadas.

Incluir hífenes (Include hyphens) – Se desativado, os quatro hífenes são removidos, resultando numa cadeia de 32 caracteres hexadecimais contínuos (por exemplo, f47ac10b58cc4372a5670e02b2c3d479). Isto é útil para contextos onde os hífenes não são permitidos, como em nomes de ficheiros, URLs ou campos de formulário que impõem restrições de caracteres. Porém, a ausência de hífenes dificulta a leitura manual e pode quebrar a validação em sistemas que esperam o formato canónico.

Ambas as opções são aplicadas instantaneamente e regeneram a lista completa de UUIDs. O utilizador pode copiar um único identificador clicando sobre ele (o que o coloca na área de transferência) ou copiar todos de uma só vez através do botão «Copiar tudo», após o qual surge a mensagem «Copiado tudo!».

Geração local no navegador

Uma vantagem frequentemente ignorada deste tipo de gerador é a privacidade. Como todos os cálculos são feitos localmente no navegador, nenhum dado é enviado para um servidor externo. A página utiliza a API crypto.getRandomValues() combinada com a implementação interna do navegador para o formato UUID v4. Em navegadores modernos (Chrome, Firefox, Safari, Edge), esta API está disponível sem necessidade de bibliotecas adicionais.

Em termos de desempenho, a geração de 100 UUIDs v4 demora menos de um milissegundo na maioria dos dispositivos. O limite de 100 deve‑se apenas a considerações de usabilidade; não há qualquer restrição técnica na página ou no protocolo. Para obter mais identificadores, o utilizador pode executar várias vezes a geração.

A página mostra um estado claro: «Pronto.» quando nenhuma ação foi realizada, e «Gerado.» após a primeira geração. Este feedback visual é especialmente útil quando se alteram opções rapidamente, pois confirma que a lista foi atualizada.

Perguntas frequentes

Quantos UUID v4 posso gerar de cada vez?
Entre 1 e 100, inclusive. Qualquer valor fora deste intervalo é recusado.

Os UUIDs são realmente aleatórios?
Sim. São gerados com crypto.randomUUID(), que utiliza uma fonte de aleatoriedade criptograficamente segura do sistema operativo. Não são utilizados geradores pseudo‑aleatórios de baixa qualidade.

Porque é que o UUID v4 causa fragmentação em bases de dados?
Porque os valores são distribuídos aleatoriamente no espaço de 128 bits. Os índices B‑tree esperam inserções sequenciais; valores aleatórios provocam divisões frequentes de páginas, aumentando a latência de escrita e o espaço ocupado.

O que acontece se eu desativar os hífenes?
O UUID passa a ter 32 caracteres hexadecimais, sem separadores. Continua a ser um identificador válido, mas não segue a representação canónica da RFC 4122.

Posso usar maiúsculas e hífenes ao mesmo tempo?
Sim. As duas opções são independentes. Pode ter UUIDs em maiúsculas com hífenes (padrão) ou sem hífenes, e o mesmo para minúsculas.

O gerador funciona offline?
Sim, desde que a página tenha sido carregada previamente. Não é necessária ligação à Internet para gerar UUIDs, pois tudo é processado localmente.