Gerador de UUID (v4)

Gere um ou vários UUIDs aleatórios de versão 4 no seu navegador com fonte de aleatoriedade criptográfica — nada é enviado a um servidor.

1.034 visualizações

O Que Torna um UUID v4 Único

Um UUID (Identificador Único Universal) é um número de 128 bits, escrito convencionalmente como 36 caracteres divididos em 8-4-4-4-12 em hexadecimal, como f47ac10b-58cc-4372-a567-0e02b2c3d479. Desses 128 bits, a versão 4 — a variante que este gerador produz — preenche 122 deles com saída de um gerador de números aleatórios criptograficamente seguro. Os 6 bits restantes não são de forma alguma aleatórios: são marcadores fixos que identificam o UUID como versão 4 e marcam sua "variante", motivo pelo qual o caractere logo após o segundo hífen é sempre 4, e o primeiro caractere do próximo grupo é sempre 8, 9, a ou b.

122 bits aleatórios formam um espaço enorme: 2^122 valores possíveis, aproximadamente 5,3×10³⁶. Para tornar isso concreto, se todo dispositivo na Terra gerasse um bilhão de UUIDs por segundo continuamente, ainda levaria algo da ordem de dezenas de bilhões de anos de geração combinada antes que a chance de uma única duplicata acidental chegasse sequer a 50%. É por isso que sistemas distribuídos — serviços rodando em centenas de servidores independentes sem nenhuma coordenação entre eles — podem gerar seus próprios UUIDs localmente e confiar, sem consultar um registro central, que nunca colidirão. Esse é todo o propósito do formato: identificação única sem uma consulta a banco de dados.

A geração aqui acontece inteiramente dentro do seu navegador, usando a função crypto.randomUUID() da Web Crypto API — a mesma fonte de aleatoriedade criptográfica que os navegadores usam para operações sensíveis à segurança. Nada é enviado a um servidor, nenhuma semente é registrada, e cada UUID que você gera é independente de todos os outros.

O Que Saber Antes de Usar UUIDs

v4 não é a única versão. v1 e v6 embutem um timestamp e o endereço de rede da máquina geradora, o que os torna ordenáveis, mas também vaza informações sobre quando e onde foram criados. v5 aplica hash a um nome que você fornece, produzindo o mesmo UUID sempre para a mesma entrada — útil quando você precisa de um identificador determinístico em vez de um aleatório. v7, um padrão mais novo, combina um prefixo de timestamp com bits aleatórios, dando a você tanto exclusividade quanto ordenação cronológica natural. v4 continua sendo o padrão certo sempre que você simplesmente precisa de um identificador aleatório, não adivinhável e livre de colisões, e não precisa que ele codifique um horário ou um nome.

Uma ressalva prática: como os valores v4 são totalmente aleatórios, usá-los como chave primária de banco de dados pode prejudicar o desempenho de inserção em tabelas indexadas por B-tree, já que as novas linhas caem em posições imprevisíveis ao longo do índice em vez de serem anexadas ordenadamente em uma extremidade. Se o throughput de inserção importa em escala, uma alternativa ordenada por tempo, como UUIDv7 ou ULID, mantém a mesma garantia de exclusividade de 128 bits e continua amigável para índices.

Perguntas Frequentes

Dois UUIDs gerados podem colidir?

Teoricamente sim, na prática nunca: com 2^122 possibilidades, gerar um bilhão de UUIDs por segundo durante 85 anos dá cerca de 50% de chance de uma única colisão. Sistemas no mundo todo confiam nisso.

Devo usar UUIDs como chave primária de banco de dados?

Eles se destacam na geração distribuída e em IDs não adivinháveis, mas v4 aleatórios fragmentam índices B-tree. Se a performance de inserção importa, veja o UUIDv7 (ordenado por tempo) ou ULID — mesmo tamanho, mais amigável para índices.

v4 é a única versão?

Não — v1/v6 embutem timestamp e endereço MAC, v5 aplica hash a um nome e sempre produz o mesmo resultado, v7 é um formato mais novo que combina timestamp com aleatoriedade. v4 continua sendo a escolha padrão quando você só precisa de um ID único aleatório.

Para que servem os bits fixos em um UUID v4?

Dos 128 bits, apenas 122 são aleatórios. Os outros 6 são reservados para marcar o próprio formato — um nibble é fixado para sinalizar "versão 4", outro é restrito a um pequeno conjunto de valores (8, 9, a ou b) para marcar a "variante". É por isso que todo UUID v4 tem um 4 logo após o segundo hífen, não importa quantos você gere.

Posso usar um UUID como token de segurança, como um link de redefinição de senha?

Um UUID v4 é gerado a partir de uma fonte de aleatoriedade criptograficamente segura, então adivinhá-lo não é prático — mas ele foi projetado para exclusividade, não para sigilo. Para qualquer coisa sensível à segurança, combine-o com expiração adequada, uso único obrigatório e validação no lado do servidor, em vez de confiar apenas no UUID.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes