O que é e para que serve
UUID (identificador único universal) é um código de 128 bits usado para identificar registros sem depender de um contador central — o que o torna útil em sistemas distribuídos, bancos de dados e APIs, onde gerar um ID sequencial confiável entre vários serviços seria complicado. Essa ferramenta gera UUIDs na versão 4 (baseada em números aleatórios), o formato mais comum hoje.
Como usar
- Escolha quantos UUIDs quer gerar de uma vez.
- Clique em "Gerar" (ou deixe gerar um automaticamente ao abrir a página).
- Copie um UUID específico ou todos de uma vez.
Exemplos práticos
Chave primária de banco distribuído. Em vez de depender de um contador central, cada serviço gera o próprio identificador sem risco de colisão — é o caso de uso que popularizou o UUID.
Identificador em URL pública. /pedido/9f2b1c04-... não revela quantos pedidos existem nem a ordem de criação, diferente de /pedido/1043.
Chave de idempotência. Ao chamar uma API de pagamento, envie um UUID como chave de idempotência: se a requisição for repetida por falha de rede, o servidor reconhece e não cobra duas vezes.
Nome de arquivo em upload. Renomear o arquivo enviado para um UUID evita colisão de nomes e impede que alguém adivinhe o caminho de arquivos de outros usuários.
Correlação de logs. Gere um UUID no início de uma requisição e propague em todos os logs relacionados. Isso permite rastrear uma operação inteira num sistema distribuído.
Massa de teste. Gerar 50 UUIDs de uma vez é prático para popular um banco de desenvolvimento.
Detalhes e limitações
Um UUID v4 tem 122 bits de aleatoriedade (os outros 6 bits são fixos, para indicar a versão e a variante do UUID), gerados aqui com a API criptográfica do navegador. A chance de colisão — dois UUIDs v4 iguais gerados por acaso — é tão baixa que, na prática, é tratada como impossível: seria preciso gerar bilhões de UUIDs por segundo durante décadas para ter uma chance razoável de colisão.
Erros comuns
Usar UUID como chave primária sem pensar no índice. Em bancos como MySQL com InnoDB, a chave primária define a ordem física dos dados. UUID v4 é aleatório, então inserções ficam espalhadas e fragmentam o índice. Alternativas: UUID v7 (ordenado por tempo) ou manter um id numérico interno e o UUID como identificador público.
Guardar UUID como texto de 36 caracteres. Armazenado como string, ocupa 36 bytes; como binário de 16 bytes, ocupa menos da metade e indexa melhor. Em tabelas grandes a diferença é relevante.
Achar que UUID é secreto. Ele é imprevisível, não secreto. Serve para não ser adivinhado, mas quem tiver o link tem acesso. Não substitui controle de permissão.
Confundir as versões. v1 usa endereço MAC e horário, o que pode vazar informação da máquina. v4 é aleatório. v7 é aleatório mas ordenável por tempo. Para uso geral hoje, v4 ou v7.
Comparar UUIDs considerando maiúsculas. A representação em texto é case-insensitive: A1B2 e a1b2 são o mesmo valor. Normalize antes de comparar como string.
Perguntas frequentes
Qual a diferença entre UUID e GUID?
São o mesmo conceito com nomes diferentes: GUID é o termo usado historicamente pela Microsoft, UUID é o termo do padrão RFC 4122 usado no restante da indústria.
É seguro usar UUID como identificador público, por exemplo numa URL?
Sim, e é inclusive recomendado: como o UUID é aleatório, ele não revela quantos registros existem no sistema nem a ordem de criação, diferente de um ID sequencial.
Dois UUIDs gerados aqui podem ser iguais?
A probabilidade é desprezível na prática — da ordem de 1 em 2,71 quintilhões para uma colisão entre dois UUIDs v4 específicos.
Dois UUIDs podem ser iguais?
Na prática, não. Um UUID v4 tem 122 bits aleatórios. Seria preciso gerar bilhões por segundo durante décadas para ter chance razoável de uma única colisão.
UUID é bom como chave primária?
Depende do banco. A aleatoriedade do v4 fragmenta índices em bancos que ordenam fisicamente pela chave. Uma saída comum é usar id numérico interno e o UUID como identificador público, ou adotar UUID v7, que é ordenável por tempo.
É seguro expor UUID numa URL?
É melhor que expor um id sequencial, porque não revela volume nem ordem. Mas o UUID é imprevisível, não secreto: continue validando permissão no servidor.