Gerador de UUID

Código
Espaço de nomes

Introdução

O Toollect Gerador de UUID é uma ferramenta baseada em navegador que produz Identificadores Universais Únicos (UUIDs, também conhecidos como GUIDs) em todas as oito versões padrão — v1 a v8. Se você precisa de identificadores aleatórios para formulários web, chaves ordenadas temporalmente para registros de banco de dados, IDs determinísticos com namespace para sistemas distribuídos ou UUIDs em formato personalizado para integração legada, esta ferramenta cobre todo o espectro sem exigir instalação de software ou processamento no lado do servidor.

UUIDs são um dos padrões de identificação mais amplamente adotados na engenharia de software, usados em todos os lugares, desde chaves primárias de banco de dados e identificadores de recursos de API até rastreamento distribuído e tokens de sessão. O Toollect Gerador de UUID consolida todas as versões de UUID em uma única interface, permitindo que você escolha a variante certa para seu caso de uso e a gere instantaneamente com um único clique.

Toda a geração ocorre inteiramente no seu navegador usando a Web Crypto API. Nenhum dado é transmitido pela rede, nenhum cookie é definido e nenhum identificador é registrado. A ferramenta funciona offline após o carregamento inicial da página e em todos os navegadores e dispositivos modernos.

Casos de Uso

Diferentes versões de UUID atendem a diferentes necessidades arquiteturais. Escolher a versão certa depende de seus requisitos de ordenação, determinismo, privacidade e coordenação do sistema.

Chaves Primárias de Banco de Dados

UUIDs eliminam a necessidade de uma sequência central ao gerar chaves primárias em instâncias de banco de dados distribuídas. UUID v4 é a escolha mais simples, mas UUID v6 e v7 oferecem ordenação temporal que reduz significativamente a fragmentação de índices B-tree em bancos de dados como PostgreSQL e MySQL. Para sistemas que precisam tanto de unicidade global quanto de bom desempenho de gravação, v7 se tornou a escolha moderna recomendada.

Identificadores para Sistemas Distribuídos

Microsserviços e sistemas distribuídos frequentemente geram identificadores independentemente em diferentes nós. UUID v1 inclui um identificador de nó (derivado do endereço MAC) e sequência de relógio, tornando os IDs de cada nó gerador inerentemente únicos sem coordenação. UUID v4 e v7 também são populares para este cenário devido à sua simplicidade.

IDs Determinísticos Baseados em Nome

Quando a mesma entrada deve sempre produzir o mesmo UUID — por exemplo, gerar um identificador estável a partir de um email de usuário, uma URL de recurso ou um nome qualificado por namespace — UUID v3 (baseado em MD5) e v5 (baseado em SHA-1) fornecem determinismo. Isso é útil para armazenamento content-addressable, identidade de entidade em event sourcing e migração de dados legados sem alterar identificadores.

Identificadores de Recursos de API

Expor inteiros auto-incrementantes em URLs de API vaza informações sobre quantidade e ordenação de recursos. UUIDs fornecem identificadores opacos que não revelam nada sobre os internos do sistema. UUID v4 é a escolha mais comum para caminhos de recursos de API REST. As opções de formatação maiúscula e sem hífens da ferramenta facilitam a adaptação de UUIDs a diferentes convenções de URL e formatação.

Sistemas Personalizados e Legados

UUID v2 (DCE Security) adiciona identificadores locais de usuário e grupo para contextos de segurança em nível de sistema operacional. UUID v8 permite layouts de campo personalizados para sistemas que precisam incorporar bits de dados específicos mantendo o formato UUID padrão. Essas versões são de nicho, mas valiosas para cenários de integração especializados.

Como Funciona

O Gerador de UUID opera inteiramente no lado do cliente. Quando você seleciona uma versão e clica em gerar, a ferramenta invoca o algoritmo apropriado usando JavaScript e a Web Crypto API do navegador.

Para UUIDs baseados em aleatoriedade (v4), a ferramenta chama crypto.getRandomValues() para produzir bytes aleatórios criptograficamente seguros e os formata no layout UUID padrão com os bits de versão e variante corretos. Para UUIDs baseados em tempo (v1, v2, v6, v7), a ferramenta lê o carimbo de data/hora atual do relógio do sistema e o combina com bytes aleatórios de sequência de relógio e nó. Para UUIDs baseados em nome (v3, v5), a ferramenta calcula o hash de um namespace e nome juntos usando MD5 ou SHA-1 através da SubtleCrypto API e extrai 128 bits para o formato UUID padrão.

Formato UUID

Um UUID é um valor de 128 bits exibido como uma string de 36 caracteres no formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, onde cada x é um dígito hexadecimal. Os 128 bits são estruturados em campos:

Campo Bits Propósito
time_low 32 32 bits baixos do carimbo de data/hora (v1, v2, v6)
time_mid 16 16 bits médios do carimbo de data/hora
time_hi_and_version 16 12 bits altos do carimbo de data/hora + 4 bits de versão
clock_seq_hi_and_reserved 8 6 bits altos da sequência de relógio + 2 bits de variante
clock_seq_low 8 8 bits baixos da sequência de relógio
node 48 Identificador de nó (endereço MAC ou aleatório)

O nibble de versão (bits 48-51, o nibble mais significativo do terceiro grupo) identifica qual algoritmo produziu o UUID: 0001 (v1), 0010 (v2), 0011 (v3), 0100 (v4), 0101 (v5), 0110 (v6), 0111 (v7), 1000 (v8). Este é o 4 que você vê em um UUID v4 padrão como 550e8400-e29b-41d4-a716-446655440000.

Os bits de variante (bits 64-65, os dois bits mais significativos do primeiro byte do quarto grupo) indicam a variante do UUID. A RFC 9562 especifica a variante 10xxxxxx (bits 64-65 = 10), significando que o primeiro caractere do quarto grupo é sempre 8, 9, a ou b.

Exemplo de Layout Binário

A estrutura de 128 bits de um UUID é melhor compreendida visualmente. Tomando um UUID v4 concreto 550e8400-e29b-41d4-a716-446655440000, aqui está como os bits mapeiam para cada grupo e campo:

Grupo:      1          2          3          4          5
Hex:     550e8400    e29b       41d4       a716       446655440000
Binário:  [32 bits]  [16 bits]   [16 bits]  [16 bits]  [48 bits]

Nibble de versão (grupo 3, nibble alto):
  550e8400-e29b-4  1d4-a716-446655440000
                  ^
                  versão = 0100 (v4)

Bits de variante (grupo 4, byte alto):
  550e8400-e29b-41d4-  a  716-446655440000
                       ^
                       variante = 10xxxxxx

Divisão binária completa dos grupos 3-4:

  grupo 3 (16 bits)      início grupo 4 (8 bits)
  0100 0001 1101 0100    1010 0111
  └─┘                    └─┘
  ver=0100 (v4)          variante | clock_seq_hi
                          10

Para UUID v7, os primeiros 48 bits codificam o carimbo de data/hora Unix em milissegundos:

  018f3a6e-1a2b-  7  bcd-8a1b-2c3d4e5f6789
                  ^
                  versão = 0111 (v7)

  grupos 1-2: carimbo de data/hora Unix ms de 48 bits
  0000 0001 1000 1111 0011 1010 0110 1110 0001 1010 0010 1011
  nibble alto do grupo 3:
  0111  = versão 7

O byte alto do grupo 4 (a no exemplo acima) contém os bits de variante. Como a variante é 10, este byte sempre cai no intervalo 1000 0000 (0x80) a 1011 1111 (0xBF), que em hex corresponde a 8, 9, a ou b como o primeiro caractere do quarto grupo.

Versões de UUID Explicadas

A tabela a seguir resume as oito versões padrão de UUID em um relance:

Versão Algoritmo Entrada Principal Determinístico Ordenável Uso Típico
v1 Baseado em tempo + Nó Carimbo de data/hora, sequência de relógio, MAC Não Sim (tempo) Sistemas distribuídos, IDs temporais legados
v2 DCE Security Carimbo de data/hora, POSIX UID/GID Não Sim (tempo) Identificadores de ambiente DCE (niche)
v3 Hash MD5 Namespace + nome Sim Não IDs baseados em nome onde MD5 é suficiente
v4 Aleatório 122 bits aleatórios Não Não Identificadores de uso geral
v5 Hash SHA-1 Namespace + nome Sim Não Identificadores baseados em nome (recomendado sobre v3)
v6 Tempo reordenado Carimbo de data/hora (tempo-alto primeiro) Não Sim (tempo) Chaves de banco de dados ordenadas temporalmente
v7 Carimbo Unix + aleatório Carimbo Unix ms + aleatório Não Sim (ms) Identificadores modernos ordenados temporalmente
v8 Personalizado Campos definidos pelo usuário Depende Depende Formatos personalizados experimentais ou proprietários

UUID v1 — Baseado em Tempo

UUID v1 combina um carimbo de data/hora de 60 bits (intervalos de 100 nanossegundos desde 15 de outubro de 1582), uma sequência de relógio de 14 bits (para detecção de reversão de relógio) e um identificador de nó de 48 bits (tradicionalmente derivado do endereço MAC). Isso dá a cada nó gerador um espaço de identificador único sem coordenação.

O carimbo de data/hora é disposto com as partes baixa, média e alta nos três primeiros grupos do UUID. Este layout não sequencial significa que UUIDs v1 são ordenáveis temporalmente, mas não em uma ordem monotônica amigável a banco de dados — v6 e v7 resolvem isso.

UUID v2 — DCE Security

UUID v2 estende o layout de carimbo de data/hora e sequência de relógio do v1, mas substitui o campo de nó de 48 bits por um ID de usuário (UID) ou ID de grupo (GID) POSIX de 32 bits e um identificador de domínio local de 6 bits. Os 10 bits restantes do campo de nó e 2 bits da sequência de relógio são reaproveitados para o domínio local e sua estrutura:

Campo Bits Fonte
Carimbo de data/hora 60 Mesma época do v1 (ticks de 100 ns desde 1582-10-15)
Sequência de relógio 6 Padrão, reduzido de 14 bits
Domínio local 6 Identifica domínio UID (POSIX, DCE, etc.)
Identificador local 32 Valor POSIX UID ou GID

UUID v2 é especificado no padrão DCE 1.1: Remote Procedure Call, não na especificação principal UUID RFC 9562. É raramente usado fora de ambientes DCE legados, e a maioria dos geradores UUID modernos o omitem ou o incluem apenas para completude. Se você está construindo um novo sistema, use v4, v7 ou v5.

UUID v3 — MD5 Baseado em Nome

UUID v3 gera um UUID determinístico a partir de um UUID de namespace e uma string de nome. O processo concatena os bytes do namespace e do nome, calcula um hash MD5 e pega os primeiros 128 bits como UUID. O mesmo namespace e nome sempre produzem o mesmo UUID v3, tornando-o adequado para content addressing e identificadores estáveis.

Veja a seção UUID v3 vs v5 abaixo para uma comparação das duas versões baseadas em nome.

UUID v4 — Aleatório

UUID v4 usa 122 bits gerados aleatoriamente mais 6 bits fixos (4 para o nibble de versão, 2 para a variante). Esta é a versão UUID mais amplamente usada, suportada diretamente pela maioria das bibliotecas padrão de linguagens de programação. O Toollect Gerador de UUID usa crypto.getRandomValues() para garantir aleatoriedade criptograficamente segura, tornando a saída adequada para contextos sensíveis à segurança como tokens de sessão.

A probabilidade de uma colisão em um bilhão de UUIDs v4 gerados é de aproximadamente 1 em 5,3 × 10²¹ — insignificante para todos os propósitos práticos.

UUID v5 — SHA-1 Baseado em Nome

UUID v5 é a contraparte do v3, usando SHA-1 em vez de MD5 para o hash subjacente. Produz as mesmas garantias de determinismo (mesmo namespace + nome = mesmo UUID) com um algoritmo de hash mais resistente a colisões. Para novos sistemas que precisam de UUIDs baseados em nome, a RFC 9562 recomenda v5 sobre v3.

Veja a seção UUID v3 vs v5 abaixo para a comparação detalhada.

UUID v6 — Tempo Reordenado

UUID v6 reestrutura o carimbo de data/hora do v1 para colocar os bits de tempo mais significativos primeiro. Isso torna os UUIDs v6 monotonicamente crescentes quando ordenados lexicograficamente, ao contrário do v1 onde o carimbo de data/hora é dividido entre campos não adjacentes. UUID v6 é um substituto moderno para v1 em ambientes onde índices de banco de dados ordenados temporalmente ou armazenamento ordenado são importantes.

UUID v7 — Carimbo Unix + Aleatório

UUID v7 usa um carimbo de data/hora Unix de 48 bits em milissegundos seguido por 74 bits aleatórios. O carimbo de data/hora ocupa os bits mais significativos, tornando os UUIDs v7 ordenáveis por tempo de criação — ideal para chaves primárias de banco de dados onde o desempenho de índices B-tree é uma preocupação. UUID v7 é mais simples que v1 ou v6 porque não requer endereços MAC, sequências de relógio ou conversões de época de 100 ns.

Para novos sistemas que precisam de UUIDs ordenados temporalmente, v7 é geralmente a melhor escolha: fornece ordenação com precisão de milissegundo, ampla aleatoriedade e implementação direta.

UUID v8 — Personalizado

UUID v8 reserva o espaço de identificador da versão 8 para formatos UUID experimentais ou proprietários. Os únicos bits fixos são o nibble de versão de 4 bits (1000) nos bits 48-51 e a variante de 2 bits (10) nos bits 64-65 — os 122 bits restantes são livres para qualquer layout de campo personalizado.

Campo Bits Restrição
Conteúdo personalizado 48 Bits 0-47 (grupos 1-2), forma livre
Versão 4 Fixo em 1000
Conteúdo personalizado 12 Bits 52-63 (final do grupo 3), forma livre
Variante 2 Fixo em 10
Conteúdo personalizado 62 Bits 66-127 (grupos 4-5), forma livre

Usos comuns para UUID v8 incluem incorporar um prefixo específico da empresa, combinar um carimbo de data/hora truncado com um contador de sequência ou codificar um identificador legado em formato UUID mantendo a compatibilidade com o formato padrão. Por exemplo, um sistema pode alocar os primeiros 32 bits como um ID de inquilino, os próximos 32 bits como um carimbo de data/hora em milissegundos e os 64 bits restantes como um sufixo aleatório — tudo em um formato que qualquer analisador UUID padrão pode ler sem modificação.

O formato v8 não é registrado na IANA e não tem garantias de interoperabilidade entre sistemas. É um espaço de uso privado para casos onde as versões padrão de UUID não se ajustam ao layout de dados necessário.

UUID v3 vs v5

Tanto UUID v3 quanto v5 geram identificadores determinísticos a partir de um UUID de namespace e um nome, mas diferem em seu algoritmo de hash:

Aspecto UUID v3 UUID v5
Algoritmo de hash MD5 (128 bits) SHA-1 (160 bits, truncado para 128)
Resistência a colisões Menor — MD5 é considerado criptograficamente quebrado Maior — nenhum ataque de colisão prático
Desempenho Ligeiramente mais rápido (MD5 vs SHA-1) Ligeiramente mais lento
Recomendação padrão Apenas para compatibilidade retroativa com v3 RFC 9562 recomenda v5 para novos sistemas
Interoperabilidade Necessária se o sistema existente usa v3 Necessária se o sistema existente usa v5

O Toollect Gerador de UUID inclui quatro namespaces padrão predefinidos definidos pela RFC 9562: DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) e X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8). Você também pode fornecer um namespace personalizado em formato UUID padrão para uso com namespaces não padrão.

Uso

Usar o Toollect Gerador de UUID não requer configuração ou registro. A interface é dividida em dois painéis — um para UUID v1/v2/v4/v6/v7/v8 (geração instantânea) e um para UUID v3/v5 (geração baseada em nome).

Bloco 1 — UUIDs Padrão (v1, v2, v4, v6, v7, v8)

  1. Selecione a versão do UUID no menu suspenso. O padrão é v4.
  2. Clique em Gerar ou pressione Enter. Um novo UUID aparece instantaneamente no campo de saída.
  3. Alterne as opções de formatação conforme necessário:
    • Maiúsculas: Converte a saída para dígitos hexadecimais maiúsculos.
    • Sem Hífens: Remove os hífens, produzindo uma string compacta de 32 caracteres.
  4. Copie o resultado clicando no botão Copiar ao lado do campo de saída.

A mudança do menu suspenso de versão aciona a regeneração automática, então mudar de v4 para v7 produz imediatamente um novo identificador.

Bloco 2 — UUIDs Baseados em Nome (v3, v5)

  1. Selecione v3 ou v5 no menu suspenso de versão no painel baseado em nome.
  2. Escolha um namespace selecionando uma das opções predefinidas (DNS, URL, OID, X.500) ou Personalizado.
  3. Se estiver usando um namespace personalizado, insira um UUID válido no campo de texto. A ferramenta valida o formato e exibe um erro se o UUID estiver malformado.
  4. Insira o nome no campo de entrada de nome. O UUID é regenerado automaticamente enquanto você digita.
  5. Alterne a formatação maiúscula e sem hífens e Copie o resultado como no Bloco 1.

O painel baseado em nome gera UUIDs a cada alteração de entrada — não há botão de geração separado para este painel.

Tutorial

Este tutorial percorre três cenários comuns desde a abertura da ferramenta até a cópia do UUID final.

Cenário 1: Gerar um UUID v4 para um Formulário Web

  1. Abra a ferramenta no seu navegador. A interface do Gerador de UUID mostra dois painéis.
  2. No Bloco 1, certifique-se de que o menu suspenso de versão está definido como v4 (o padrão).
  3. Clique em Gerar. Aparece um UUID v4, por exemplo 550e8400-e29b-41d4-a716-446655440000.
  4. Clique em Copiar para copiar o UUID para sua área de transferência e cole-o no seu formulário web ou requisição de API.
  5. Ative Maiúsculas e clique em Gerar novamente para produzir 550E8400-E29B-41D4-A716-446655440000.
  6. Ative Sem Hífens para produzir 550e8400e29b41d4a716446655440000 para armazenamento compacto ou parâmetros de URL.

Cenário 2: Gerar um UUID v7 Ordenado Temporalmente para uma Chave Primária de Banco de Dados

Suponha que você está projetando uma tabela no PostgreSQL que precisa de chaves primárias globalmente únicas sem uma sequência central, mas também quer um bom desempenho de gravação.

  1. Selecione v7 no menu suspenso de versão do Bloco 1. O campo de saída mostra imediatamente um novo UUID v7, como 018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789.
  2. Observe os primeiros caracteres — UUID v7 começa com um carimbo de data/hora Unix em milissegundos, então gerações sucessivas mostrarão valores crescentes nos primeiros grupos.
  3. Gere vários UUIDs em rápida sucessão e observe que os valores são monotônicos: cada novo UUID começa com um prefixo maior ou igual ao anterior.
  4. Copie o identificador para uso em sua instrução INSERT: INSERT INTO users (id, name) VALUES ('018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789', 'Alice');

Cenário 3: Gerar um UUID v5 Determinístico a partir de uma URL de Recurso

Imagine que você tem um sistema de gerenciamento de conteúdo onde cada artigo é identificado por sua URL e precisa de um UUID estável que não mude entre implantações.

  1. No Bloco 2, defina a versão como v5.
  2. Selecione o namespace URL nos botões de rádio de namespace. Isso usa 6ba7b811-9dad-11d1-80b4-00c04fd430c8, o namespace padrão para UUIDs baseados em URL.
  3. Insira a URL do artigo no campo Nome, por exemplo https://example.com/articles/uuid-guide.
  4. O UUID aparece automaticamente — toda vez que você insere a mesma URL com o namespace URL, você obtém o mesmo UUID.
  5. Teste o determinismo: Selecione o namespace DNS e observe que o UUID muda. Volte para URL — o UUID original reaparece.

Dicas Profissionais

Domine estas técnicas avançadas para aproveitar ao máximo o Toollect Gerador de UUID:

  • Use v7 em vez de v1 para chaves primárias de banco de dados: UUID v7 ordena por carimbo de data/hora em milissegundos a partir dos bits mais significativos, dando-lhe ordenação monotônica amigável a B-tree sem a complexidade de endereços MAC ou gerenciamento de sequência de relógio. Para novos projetos que exigem UUIDs ordenados temporalmente, comece com v7.

  • Prefira v5 em vez de v3 para UUIDs baseados em nome: A menos que você precise interoperar com um sistema que usa v3, sempre use UUID v5. SHA-1 oferece mais margem de colisão que MD5 com diferença de desempenho insignificante. A ferramenta padroniza v5 no painel baseado em nome por esta razão.

  • Remova hífens para parâmetros de URL: Ative Sem Hífens ao usar UUIDs em caminhos de URL ou parâmetros de consulta. Sem hífens, um UUID se torna uma string hexadecimal de 32 caracteres que não requer codificação de URL e é visualmente mais limpa em segmentos de rota.

  • Use namespaces predefinidos para identificadores consistentes entre sistemas: Os namespaces DNS, URL, OID e X.500 são padronizados na RFC 9562. Usá-los garante que qualquer gerador UUID compatível com RFC produza o mesmo UUID v3 ou v5 para o mesmo nome. Isso é essencial para concordância de identificadores entre sistemas.

  • Namespace personalizado com um UUID v4 fixo: Ao criar seu próprio namespace para UUIDs v3/v5, gere um UUID v4 uma vez, armazene-o em sua configuração e reutilize-o. Isso garante que todos os identificadores dentro do seu namespace personalizado sejam distintos de qualquer outro namespace.

  • Gere em lote clicando várias vezes: Para pequenos lotes, clicar rapidamente em Gerar produz UUIDs distintos a cada vez. Para geração em larga escala, use o método de linha de comando ou programático descrito abaixo.

Conceitos Equivocados Comuns sobre UUID

Várias crenças amplamente repetidas sobre UUIDs são imprecisas ou enganosas. Entender as nuances ajuda você a tomar melhores decisões arquiteturais.

"UUIDs são 100% garantidos como únicos." Nenhum sistema de identificação fornece garantias absolutas, mas UUIDs oferecem resistência a colisões astronomicamente alta quando usados corretamente. Para UUID v4, a probabilidade de pelo menos uma colisão em um bilhão de IDs gerados é aproximadamente 1 em 10¹⁴. Para versões baseadas em tempo (v1, v6, v7), colisões entre diferentes nós requerem reinicialização simultânea do relógio em várias máquinas. A taxa prática de colisão em todos os UUIDs implementados corretamente é efetivamente zero.

"UUID v4 é sempre a melhor escolha." UUID v4 é o mais versátil e é adequado para a maioria das aplicações, mas não é ideal para todos os cenários. Para chaves primárias de banco de dados, a distribuição aleatória do v4 causa divisões de página de índice e amplificação de gravação em índices B-tree. UUID v7 oferece ordenação temporal que mantém índices mais eficientemente. Para identificadores determinísticos que devem ser reproduzíveis a partir de um nome, v3 ou v5 é a única escolha correta.

"UUIDs são completamente aleatórios." Apenas UUID v4 é totalmente aleatório (122 bits de entropia). UUID v1, v2, v6 e v7 incorporam carimbos de data/hora, tornando-os parcialmente previsíveis — informações que podem ser divulgadas através do identificador. UUID v3 e v5 são determinísticos para uma determinada entrada. Se imprevisibilidade é um requisito (tokens de segurança, identificadores de sessão), use v4 com a Web Crypto API.

"Todos os UUIDs têm o mesmo formato." Todos os UUIDs RFC 9562 compartilham o formato hexadecimal de 36 caracteres 8-4-4-4-12, mas a estrutura interna difere radicalmente entre versões. Um UUID v1 incorpora bits de endereço MAC e carimbo de data/hora; UUID v4 é pura aleatoriedade; UUID v7 combina um carimbo de data/hora com bits aleatórios. Você pode identificar a versão pelo 13º caractere (4 = v4, 7 = v7, etc.) e a variante pelo 17º caractere (8, 9, a ou b).

"UUIDs diminuem o desempenho do banco de dados." Isso era parcialmente verdade com versões mais antigas de banco de dados e UUID v4 armazenados como strings ASCII. Bancos de dados modernos (PostgreSQL com tipo uuid, MySQL 8+ com UUID_TO_BIN, SQL Server) armazenam UUIDs como valores binários de 16 bytes com suporte nativo a índices. UUID v7 mitiga ainda mais a fragmentação de índice através da geração ordenada temporalmente. A diferença de desempenho em comparação com inteiros auto-incrementantes é insignificante para a maioria das cargas de trabalho.

Alternativas

Existem várias alternativas ao Toollect Gerador de UUID, cada uma adequada a diferentes fluxos de trabalho.

Ferramenta / Método Melhor Para Limitações
Toollect Gerador de UUID Geração baseada em navegador, todas as versões v1-v8, sem instalação, privacidade primeiro Requer internet para carregamento inicial da página, não scriptável
Comando Unix uuidgen Geração em lote via terminal, scripting, integração de pipeline Tipicamente apenas v1 e v4; varia por implementação de plataforma
ULID IDs ordenáveis base32 de 26 caracteres, seguros para URL, case-insensitive Sem bits de versão/variante; não compatível com UUID; limitado a 80 bits de aleatoriedade
NanoID IDs curtos e seguros para URL (padrão 21 caracteres), alfabeto e comprimento configuráveis Não é um UUID; sem formatação ou versionamento padrão; comprimento varia por configuração
Snowflake (estilo Twitter) IDs ordenados temporalmente de 64 bits, muito compactos, alto throughput em sistemas distribuídos Requer coordenação de ID de worker; não é formato UUID; implementações específicas de plataforma
Geradores de UUID online (ex. uuidgenerator.net) Geração rápida de UUID único offline Limitado a uma ou duas versões; muitas vezes sem aleatoriedade criptográfica; pode enviar dados ao servidor
PostgreSQL gen_random_uuid() Geração lado banco de dados no momento do INSERT Apenas PostgreSQL; tipicamente apenas v4; sem v7 ou versões baseadas em nome sem extensões
Módulo Python uuid Geração programática em aplicações Python Requer runtime Python; não baseado em navegador
Node.js crypto.randomUUID() Geração lado servidor Node.js Apenas Node.js; carece de versões baseadas em tempo e nome
Web Crypto API (crypto.randomUUID) Geração nativa v4 no navegador com zero dependências Suporta apenas v4; sem opções de formatação ou UUIDs baseados em nome

Para a maioria dos usuários que desejam geração de UUID instantânea, privada e multiversão sem sair do navegador, o Toollect Gerador de UUID oferece o conjunto de funcionalidades mais abrangente.

Privacidade de Dados

O Toollect Gerador de UUID processa cada byte dos seus dados inteiramente no seu navegador. Nenhum dado inserido — nomes, namespaces ou identificadores gerados — é transmitido a servidores, armazenado em bancos de dados ou registrado em qualquer sistema.

Toda a geração usa a Web Crypto API integrada do JavaScript (crypto.getRandomValues, crypto.randomUUID, crypto.subtle.digest). A página da ferramenta não inclui scripts de análise, pixels de rastreamento, cookies ou incorporações de terceiros. Nenhuma entrada de localStorage ou sessionStorage é criada ou lida.

Após o carregamento inicial da página, o Gerador de UUID funciona completamente offline — gere identificadores mesmo no modo avião com zero atividade de rede. Você pode verificar isso inspecionando a guia Rede nas ferramentas de desenvolvedor do seu navegador ou desconectando-se completamente da internet.

Solução de Problemas

Problema Causa Provável Solução
Saída UUID v4 se repete entre gerações crypto.getRandomValues() pode estar simulado ou indisponível em ambientes de teste Em navegadores de produção, crypto.getRandomValues() sempre retorna entropia fresca. Teste gerando dez UUIDs em sequência — todos devem ser diferentes.
UUID baseado em nome (v3/v5) não mostra saída Campo Nome está vazio ou namespace personalizado é inválido Certifique-se de que o campo Nome contenha texto. Se estiver usando um namespace personalizado, verifique se é um UUID válido no formato padrão (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Validação de namespace personalizado falha Formato UUID está incorreto — hífens ausentes, comprimento errado ou caracteres hex inválidos Insira o namespace como um UUID completo de 36 caracteres incluindo hífens. A ferramenta valida o formato antes de gerar.
Botão Copiar não funciona API de área de transferência do navegador requer contexto seguro ou gesto do usuário Certifique-se de que a página é servida via HTTPS. O botão Copiar usa navigator.clipboard.writeText(), que funciona em todos os navegadores modernos em páginas HTTPS.
UUID v1 mostra valores inesperados Carimbo de data/hora ou sequência de relógio pode ter sido reiniciado UUID v1 usa ticks de 100 ns desde outubro de 1582. O ciclo do relógio em 2026 está bem dentro do intervalo de 60 bits (~292 anos). Sequências de relógio reiniciam naturalmente se o horário do sistema retroceder.
Navegador não suporta crypto.randomUUID Versão antiga do navegador A ferramenta usa internamente crypto.getRandomValues() como fallback. Suportado no Chrome 80+, Firefox 75+, Safari 13+, Edge 80+.
Valores UUID v7 não são estritamente crescentes Duas gerações dentro do mesmo milissegundo produzem o mesmo prefixo de carimbo UUID v7 usa precisão de milissegundo. Dentro do mesmo milissegundo, múltiplas gerações compartilham o mesmo carimbo; o sufixo aleatório muda a cada vez. Isso é por design e não afeta a ordenação de índices de banco de dados.

Especificações Técnicas

O Toollect Gerador de UUID é projetado para correção, desempenho e compatibilidade entre navegadores.

Conformidade com Padrões

Aspecto Especificação
RFC RFC 9562 (substitui RFC 4122)
Formato UUID 128 bits, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Variante Variante RFC 9562 (10xxxxxx)
Maiúsculas/minúsculas Minúsculas por padrão, opção de maiúsculas disponível
Hífens Incluídos por padrão, removíveis com opção sem hífens

Detalhes do Algoritmo por Versão

Versão Fonte de Entropia Tempo de Geração
v1 performance.now() para carimbo, crypto.getRandomValues() para sequência de relógio e nó < 1 ms
v2 Mesmo que v1 com POSIX UID/GID (local), campo de nó adaptado < 1 ms
v3 MD5 via crypto.subtle.digest() ~2-5 ms (async)
v4 crypto.getRandomValues() < 1 ms
v5 SHA-1 via crypto.subtle.digest() ~2-5 ms (async)
v6 Mesmo carimbo que v1 mas reordenado (tempo-alto primeiro) < 1 ms
v7 Date.now() para carimbo, crypto.getRandomValues() para sufixo aleatório < 1 ms
v8 crypto.getRandomValues() para bits aleatórios < 1 ms

Compatibilidade com Navegadores

Navegador Versão Mínima Status
Google Chrome 80+ Suporte completo
Mozilla Firefox 75+ Suporte completo
Apple Safari 13+ Suporte completo
Microsoft Edge 80+ Suporte completo
Samsung Internet 13+ Suporte completo
Opera 67+ Suporte completo

Privacidade e Segurança

  • Transmissão zero de dados: toda a geração ocorre na memória do navegador
  • Nenhum cookie, localStorage ou sessionStorage usado
  • Nenhum script de análise ou rastreamento na página da ferramenta
  • Totalmente funcional em modo offline após o carregamento inicial da página
  • Nenhum registro, login ou chaves de API necessários
  • Aleatoriedade criptograficamente segura via Web Crypto API

Recursos

  • Gere todas as versões de UUID v1 a v8, incluindo baseadas em tempo (v1, v6, v7), aleatórias (v4), baseadas em nome (v3, v5), segurança DCE (v2) e personalizadas (v8)
  • Geração aleatória criptograficamente segura usando a Web Crypto API com zero transmissão de rede
  • Alterne entre saída maiúscula e remova hífens para UUIDs compactos ou prontos para exibição
  • Geração de UUID baseada em nome com namespaces integrados (DNS, URL, OID, X.500) e suporte a namespace personalizado com validação
  • Processamento 100% lado do cliente — nenhum dado enviado a servidores, nenhum cadastro ou instalação necessária
  • Geração e cópia com um clique com resultados instantâneos em todos os navegadores e dispositivos modernos

Perguntas frequentes

O que é um UUID?
Um UUID (Identificador Universal Único) é um identificador de 128 bits padronizado pela RFC 9562. Ele fornece uma maneira de gerar identificadores únicos sem coordenação central em sistemas distribuídos. Os UUIDs vêm em várias versões, cada uma usando um algoritmo diferente — baseados em tempo (v1, v6, v7), aleatórios (v4), hash baseado em nome (v3, v5) e outros — com aproximadamente 5,3 × 10³⁶ valores possíveis apenas para a versão aleatória.
Qual versão de UUID devo usar?
UUID v4 é a escolha mais comum para identificadores de uso geral devido à sua simplicidade e aleatoriedade. UUID v7 é recomendado para chaves primárias de banco de dados onde a ordenação temporal melhora o desempenho de índices B-tree. UUID v5 é ideal quando você precisa de identificadores determinísticos derivados de um nome e namespace. UUID v1 é adequado para sistemas distribuídos que requerem identificadores ordenados temporalmente sem coordenação, embora v6 e v7 sejam substitutos modernos.
Os UUIDs são garantidos como únicos?
Nenhum sistema de identificação pode garantir unicidade absoluta, mas os UUIDs tornam as colisões astronomicamente improváveis quando gerados corretamente. Para UUID v4, gerar um bilhão de UUIDs por segundo durante 100 anos ainda produziria uma probabilidade de colisão de apenas 50%. As versões baseadas em tempo (v1, v6, v7) incluem identificadores de nó únicos e valores de sequência de relógio. Na prática, colisões de UUID são virtualmente inexistentes ao usar fontes aleatórias adequadas e identificadores de nó únicos.
Este gerador de UUID é seguro para uso em produção?
Sim. A ferramenta usa a Web Crypto API (crypto.getRandomValues e crypto.randomUUID), que é criptograficamente segura e apoiada por fontes de entropia do sistema operacional. Toda a geração acontece inteiramente no seu navegador — nenhum dado é enviado a servidores, armazenado ou registrado. Para UUIDs baseados em nome v3 e v5, o hash usa os métodos de digest SubtleCrypto integrados do navegador.
Qual é a diferença entre UUID v3 e v5?
Tanto v3 quanto v5 geram UUIDs determinísticos a partir de um namespace e nome usando hash. UUID v3 usa MD5 (hash de 128 bits) e UUID v5 usa SHA-1 (hash de 160 bits truncado para 128 bits). A RFC 9562 recomenda UUID v5 em vez de v3 porque SHA-1 é mais resistente a colisões que MD5, considerada criptograficamente quebrada. Para novos sistemas, use UUID v5 a menos que a interoperabilidade com um sistema existente baseado em v3 seja necessária.
Posso usar UUIDs como chaves primárias de banco de dados?
Sim, mas o desempenho depende da versão escolhida. Os valores UUID v4 são distribuídos aleatoriamente, o que pode causar fragmentação de índice em árvores B. UUID v6 e v7 são ordenados temporalmente — novos valores são classificados sequencialmente, minimizando divisões de página e melhorando o desempenho de gravação. Muitos bancos de dados modernos (PostgreSQL, MySQL 8+, SQL Server) suportam tipos e índices UUID nativos.
Um GUID é igual a um UUID?
Sim. GUID (Globally Unique Identifier) é a implementação da Microsoft do padrão UUID. Embora GUID originalmente se referisse à variante específica da Microsoft de UUID, os termos são usados de forma intercambiável na prática. GUIDs gerados por esta ferramenta seguem o padrão UUID RFC 9562 e são totalmente compatíveis com todos os sistemas que aceitam UUID padrão.
ESC