Guia

Gerador de UUID: Guia Completo

UUIDs (Identificadores Únicos Universais) são identificadores de 128 bits que podem ser gerados independentemente em qualquer computador e são garantidos de serem únicos sem coordenação. São essenciais para sistemas distribuídos, bancos de dados e APIs. Este guia abrangente explica como UUIDs funcionam, quando usar diferentes versões e melhores práticas para implementação.

O Que é um UUID?

Um UUID (Identificador Único Universal) é um rótulo de 128 bits usado para identificar exclusivamente informações através de sistemas sem requerer coordenação central. UUIDs são formatados como 32 dígitos hexadecimais exibidos em cinco grupos separados por hífens: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, como "550e8400-e29b-41d4-a716-446655440000". A ideia chave por trás dos UUIDs é que o espaço de valores possíveis é tão vasto que IDs gerados aleatoriamente são efetivamente garantidos de serem únicos. Com 2^128 valores possíveis (aproximadamente 3,4 × 10^38), você poderia gerar um bilhão de UUIDs por segundo durante um século e ter uma probabilidade negligenciável de colisão. UUIDs resolvem um problema fundamental em sistemas distribuídos: como podem múltiplos computadores independentemente gerar identificadores únicos sem comunicação? IDs sequenciais tradicionais requerem uma autoridade central (como auto-incremento de banco de dados) que se torna um gargalo e ponto único de falha. UUIDs podem ser gerados em qualquer lugar, a qualquer hora, com confiança de que não conflitarão. O formato UUID é padronizado em RFC 4122. Os cinco grupos contêm 8, 4, 4, 4 e 12 dígitos hex respectivamente, totalizando 36 caracteres (incluindo hífens). O formato inclui informação de versão e variante codificada em bits específicos. Aplicações comuns incluem: chaves primárias em bancos de dados, especialmente bancos de dados distribuídos; identificadores de sessão em aplicações web; identificadores de rastreamento para requisições e eventos de API; nomes de arquivo únicos para conteúdo carregado; identificadores de dispositivo em aplicações móveis; e IDs de correlação para rastreamento distribuído. Enquanto "UUID" é o termo oficial do RFC 4122, Microsoft usa "GUID" (Identificador Globalmente Único) para o mesmo conceito. São funcionalmente idênticos; os termos são intercambiáveis.

Versões UUID

A especificação UUID define cinco versões, cada uma com diferentes métodos de geração e casos de uso. A versão é codificada nos bits 12-15 do UUID (o primeiro dígito hex do terceiro grupo). Entender estas versões ajuda você a escolher apropriadamente para sua aplicação. Versão 1 (baseada em tempo): Combina o timestamp atual (intervalos de 100 nanossegundos desde 15 de outubro de 1582) com o endereço MAC do computador gerador. UUIDs V1 são garantidos únicos e podem ser ordenados cronologicamente. No entanto, expõem quando e onde foram gerados, o que pode ser uma preocupação de privacidade. O endereço MAC revela o fabricante do dispositivo e pode ser usado para rastreamento. Versão 2 (DCE Security): Uma variante da Versão 1 que incorpora POSIX UID/GID. Raramente usada na prática e não amplamente suportada. Versão 3 (baseada em nome MD5): Gerada hasheando um UUID de namespace e um nome usando MD5. Dado o mesmo namespace e nome, você sempre obtém o mesmo UUID. Útil para criar IDs reproduzíveis de entradas conhecidas. No entanto, MD5 é criptograficamente fraco, então Versão 5 é preferida para novas aplicações. Versão 4 (aleatória): Gerada usando números aleatórios ou pseudo-aleatórios. Esta é a versão mais comumente usada porque é simples, não tem preocupações de privacidade e fornece excelentes garantias de unicidade. 122 bits são aleatórios (6 bits são usados para versão e variante), dando 2^122 valores possíveis. Nosso gerador produz UUIDs V4. Versão 5 (baseada em nome SHA-1): Como Versão 3 mas usa SHA-1 ao invés de MD5. Preferida sobre V3 para UUIDs baseados em nome. Use quando você precisa de UUIDs determinísticos de entradas conhecidas. Para a maioria das aplicações, Versão 4 (aleatória) é a escolha certa. Use versões baseadas em nome (3 ou 5) quando você precisa de reprodutibilidade—as mesmas entradas sempre produzem o mesmo UUID. Use Versão 1 apenas se você especificamente precisa de ordenação baseada em tempo e aceita os compromissos de privacidade.

Casos de Uso

UUIDs servem propósitos diversos através do desenvolvimento de software. Entender estes casos de uso ajuda você a aplicar UUIDs efetivamente e escolher a abordagem certa para suas necessidades específicas. Chaves primárias de banco de dados: UUIDs fazem excelentes chaves primárias, especialmente em bancos de dados distribuídos ou sistemas que podem mesclar dados de múltiplas fontes. Diferente de IDs auto-incrementais, UUIDs podem ser gerados no lado do cliente antes que o registro exista, IDs não revelam informação de ordem ou contagem, e mesclar bancos de dados não causa colisões de ID. No entanto, UUIDs são maiores que inteiros (16 bytes vs 4-8 bytes), o que afeta armazenamento e desempenho de índice. Identificadores de sessão: UUIDs são ideais para tokens de sessão porque são não-adivinháveos (diferente de IDs sequenciais) e únicos sem verificar o banco de dados. Um usuário não pode deduzir outros IDs de sessão válidos do seu próprio. Combine com validação do lado do servidor e armazenamento seguro. IDs de requisição de API: Use UUIDs para rastrear requisições através de sistemas distribuídos. Cada requisição recebe um UUID único que aparece em logs através de múltiplos serviços, facilitando rastreamento de uma requisição através de microserviços, gateways e bancos de dados. Nomes de arquivo para uploads: Gerar nomes de arquivo UUID previne colisões quando múltiplos usuários carregam arquivos com o mesmo nome. Também previne que usuários adivinhem nomes de arquivo de outros usuários, o que poderia ser um vazamento de segurança. IDs de dispositivo: Aplicações móveis frequentemente geram UUIDs para identificar exclusivamente dispositivos ou instalações. Ao contrário de IDs de dispositivo de hardware, UUIDs gerados pela aplicação respeitam privacidade do usuário enquanto ainda permitem análise e depuração. IDs de correlação: Em arquiteturas de microserviços, UUIDs conectam eventos relacionados através de serviços. Quando um usuário faz uma compra, o mesmo UUID de correlação aparece em logs de serviço de pedido, pagamento, inventário e expedição. Sistemas de controle de versão distribuído: Git e sistemas similares usam hashes como identificadores, mas UUIDs servem propósitos similares—identificadores únicos gerados independentemente que podem ser mesclados sem conflito. A decisão UUID vs. inteiro para chaves primárias depende de requisitos. Use UUIDs quando: sistemas são distribuídos, dados vêm de múltiplas fontes, privacidade/segurança importa (IDs não-adivinháveos), geração do lado do cliente é necessária. Use inteiros quando: sistema único centralizado, desempenho/armazenamento máximo crítico, ordem natural necessária, simplicidade preferida.

Testar a Ferramenta

Gerador de UUID

Gerador de UUID

Saiba Mais

Perguntas Frequentes

Gerador de UUID

Perguntas Frequentes