O que torna este gerador de UUID v4 diferente
A maioria das ferramentas online de geração de UUID repete a mesma lógica: produzir um identificador aleatório e copiá-lo. O diferencial desta página está em três pontos fundamentais. Primeiro, ela gera UUID v4 com 122 bits de entropia puramente aleatória — sem carimbo de tempo embutido. Isso significa que cada valor é imprevisível e a probabilidade de colisão é desprezível, mas também que os identificadores não seguem nenhuma ordenação cronológica. Segundo, todo o processamento acontece localmente no navegador, usando o gerador criptográfico de números pseudoaleatórios (CSPRNG) do sistema. Nenhum dado é enviado a servidores. Terceiro, você controla não apenas a quantidade (de 1 a 100), mas também a exibição: maiúsculas ou minúsculas, com ou sem hífens. Alterar qualquer opção regenera imediatamente o conjunto completo. Não há necessidade de clicar em “gerar” depois de mudar um parâmetro.
Como o UUID v4 é gerado localmente no navegador
O navegador moderno expõe a interface crypto.getRandomValues(), que preenche um vetor de inteiros sem sinal de 32 bits com valores criptograficamente fortes. O código da página usa essa função para obter 16 octetos (128 bits) de dados aleatórios. Desse total, 6 bits são reservados para campos fixos da especificação RFC 4122: 4 bits indicam a versão (4) e 2 bits indicam a variante (10). Os 122 bits restantes são efetivamente aleatórios.
Como tudo roda localmente, a velocidade de geração depende apenas do seu hardware. Para 100 UUIDs, o processamento leva milissegundos. Não há fila, limite de taxa ou custo computacional externo. Isso também garante privacidade: o endereço IP, o histórico de geração e os próprios identificadores nunca saem do seu dispositivo. A página funciona offline depois de carregada, desde que o JavaScript do navegador esteja habilitado.
Estrutura do UUID v4: bits, caracteres e formato
Um UUID v4 é uma sequência de 36 caracteres no padrão 8-4-4-4-12, com ou sem hífens. Os 32 caracteres hexadecimais representam os 16 octetos (128 bits) do identificador. A distribuição exata dos bits é:
| Posição (bits) | Finalidade | Valor fixo |
|---|---|---|
| 0 – 47 | 48 bits aleatórios | aleatório |
| 48 – 51 | Versão | 0100 (versão 4) |
| 52 – 63 | 12 bits aleatórios | aleatório |
| 64 – 65 | Variante | 10 (RFC 4122) |
| 66 – 127 | 62 bits aleatórios | aleatório |
Os caracteres hexadecimais são gerados a partir desses bits. Quando os hífens estão habilitados, eles aparecem nas posições 8, 13, 18 e 23 (contando do zero). Um exemplo típico:
f47ac10b-58cc-4372-a567-0e02b2c3d479
Se você desabilitar os hífens, o mesmo UUID vira uma string contínua de 32 caracteres:
f47ac10b58cc4372a5670e02b2c3d479
A opção de caixa alta altera apenas a representação: letras hexadecimais de a a f são substituídas por A a F. Isso não modifica os bits internos; é puramente cosmético. Muitos sistemas e bancos de dados tratam maiúsculas e minúsculas de forma idêntica, mas em alguns contextos (como nomes de arquivo em sistemas sensíveis a caixa) essa escolha pode importar.
Controlando a saída: caixa alta e hífens
Os dois toggles — Uppercase e Include hyphens — operam depois que a geração aleatória é concluída. Quando você alterna um deles, a página não gera novos UUIDs; apenas transforma a lista já exibida. No entanto, se você alterar o count (número de IDs), aí sim um novo conjunto é gerado com as opções de exibição atuais.
O valor padrão é minúsculo com hífens. Muitos programadores preferem essa forma por ser a mais comum em exemplos da RFC e em logs. Já para uso em URLs ou parâmetros de consulta, remover os hífens economiza quatro caracteres, e a caixa alta pode ajudar na legibilidade quando o identificador é exibido em interfaces escuras ou fontes monoespaçadas.
Uma regra importante: todos os UUIDs gerados em um mesmo lote compartilham as mesmas configurações de exibição. Se você precisar de alguns com hífens e outros sem, terá que gerar lotes separados.
Probabilidade de colisão e implicações para bancos de dados
Com 122 bits de entropia, a chance de dois UUID v4 gerados independentemente colidirem é de aproximadamente 1 em 5,3 × 10³⁶. Para se ter uma ideia, se você gerasse 1 bilhão de UUIDs por segundo, levaria cerca de 100 anos para atingir uma probabilidade de 50% de colisão (considerando o paradoxo do aniversário). Na prática, colisões acidentais são virtualmente impossíveis.
Esse nível de aleatoriedade, porém, tem um custo quando se usa UUID v4 como chave primária em bancos de dados relacionais. Como os valores são distribuídos uniformemente no espaço de 128 bits, inserções sucessivas tendem a cair em páginas de índice diferentes, causando fragmentação. O índice B-tree sofre com a quebra constante de páginas, e o desempenho de consultas por intervalo (ex.: ORDER BY id) se degrada porque a ordenação não reflete a ordem de inserção.
Para aplicações onde a ordenação temporal é irrelevante e a imprevisibilidade é essencial (como tokens de sessão, IDs de transação ou chaves de API), UUID v4 é a escolha correta. Já para chaves primárias de tabelas transacionais, alternativas como UUID v7 (ordenado por tempo) ou ULID costumam ser mais adequadas.
Diferenças entre UUID v4, v7 e ULID
A página também oferece os formatos UUID v7, ULID e NanoID, mas este artigo se concentra no v4. A principal diferença em relação ao v7 é que este último embute um carimbo de tempo Unix de 48 bits (milissegundos) no início do identificador, seguido de 74 bits aleatórios. Isso faz com que UUIDs v7 gerados próximos uns dos outros sejam ordenáveis cronologicamente, reduzindo a fragmentação de índice. Em contrapartida, a imprevisibilidade diminui: um atacante que conhece o momento aproximado da geração pode adivinhar parte do identificador.
O ULID usa 48 bits de timestamp (com precisão de milissegundo) e 80 bits de aleatoriedade, codificados em base32 (26 caracteres maiúsculos). É uma alternativa mais compacta que o UUID v4, mas também ordenável por tempo. A escolha entre esses formatos depende do equilíbrio entre imprevisibilidade, ordenação e comprimento da string.
Para aplicações onde nenhuma informação temporal pode ser inferida — como em identificadores de anonimização, tokens de redefinição de senha ou IDs de dispositivos — UUID v4 permanece a opção mais segura.
Perguntas frequentes
Por que o UUID v4 não usa 128 bits de aleatoriedade, se tem 128 bits no total?
Porque a especificação RFC 4122 reserva 4 bits para indicar a versão e 2 bits para a variante. Dos 128 bits, apenas 122 são efetivamente aleatórios. Os bits fixos garantem que o identificador seja reconhecido como um UUID v4 por qualquer sistema que implemente o padrão.
Alterar a opção “caixa alta” muda o valor do UUID?
Não. A caixa alta é apenas uma transformação de apresentação. O UUID gerado internamente tem seus bits definidos de forma independente. Se você alternar entre maiúsculas e minúsculas, o valor subjacente (e sua unicidade) permanece o mesmo.
Posso gerar mais de 100 UUIDs de uma vez?
A página limita o campo count a valores entre 1 e 100. Para gerar mais, você pode executar várias gerações sucessivas. Não há bloqueio por IP ou taxa, porque nada é enviado ao servidor.
Como copiar todos os UUIDs de uma vez?
Clique no botão “Copy all” abaixo da lista. O conteúdo da lista inteira (cada UUID em uma linha) será copiado para a área de transferência. Uma mensagem “Copied all!” confirma a operação.
O que acontece se eu desabilitar os hífens? O UUID ainda é válido?
Sim. Os hífens são apenas separadores visuais; a especificação permite representações sem hífens. Sistemas que esperam UUIDs no formato canônico podem rejeitá-los, mas a maioria das bibliotecas aceita tanto com quanto sem hífens. A página permite gerar ambos os formatos.
A página funciona sem conexão com a internet?
Sim, desde que a página já tenha sido carregada. Todo o código JavaScript e os recursos estão no lado do cliente, e a geração usa funções nativas do navegador. Você pode desconectar a rede e continuar gerando UUIDs normalmente.