Gerador UUID
Gere UUIDs v4 aleatórios — um ou vários.
O que é um UUID?
Um UUID (Universally Unique Identifier) é um número de 128 bits usado para identificar informação de forma única em sistemas distribuídos sem necessidade de uma autoridade central. Os UUIDs estão normalizados na RFC 4122 e são usados em todo o lado — desde chaves primárias de bases de dados e rastreamento de pedidos de API até gestão de sessões e nomeação de ficheiros.
O formato UUID padrão tem 36 caracteres com quatro hífens: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, onde M indica a versão (1–5) e N indica a variante. A versão mais comummente usada é a UUID v4, que gera identificadores usando aleatoriedade criptográfica. Esta ferramenta gera UUID v4 por omissão.
Formato UUID v4
O UUID v4 usa 122 bits aleatórios (os restantes 6 bits codificam a versão e a variante). O formato é xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx onde cada x é um dígito hex aleatório e y é um de 8, 9, A ou B. O 4 no terceiro grupo identifica-o como versão 4. Cada UUID v4 é gerado de forma independente usando aleatoriedade criptográfica.
Como utilizar esta ferramenta
Clique no botão gerar para criar um novo UUID v4. Cada clique produz um identificador novo e criptograficamente aleatório. Pode gerar múltiplos UUIDs ao mesmo tempo para operações em lote. Clique no botão de copiar para copiar o UUID para a área de transferência para uso em código, configurações ou bases de dados.
Casos de uso comuns de UUID
- Chaves primárias de bases de dados: Os UUIDs permitem que sistemas distribuídos criem registos de forma independente sem colisões de chaves, ao contrário dos inteiros auto-incrementáveis que requerem coordenação.
- IDs de pedidos de API: Associe um UUID a cada pedido de API para rastreamento ponta a ponta em microsserviços.
- Tokens de sessão: Crie identificadores de sessão únicos que são impossíveis de adivinhar.
- Nomes de ficheiros: Gere nomes de ficheiros únicos para evitar colisões quando múltiplos utilizadores fazem upload simultaneamente.
- Chaves de idempotência: Use UUIDs em APIs de pagamento para garantir que a mesma transação não é processada duas vezes.
Probabilidade de colisão
O UUID v4 tem 122 bits aleatórios, produzindo 5,3 × 10³⁶ valores possíveis. A probabilidade de gerar dois UUIDs idênticos é astronomicamente pequena. Seria necessário gerar 2,71 × 10¹⁸ UUIDs (2,71 quintilhões) antes de atingir uma probabilidade de 50% de uma única colisão. Em termos práticos, as colisões não são uma preocupação realista para nenhuma aplicação.
UUID nil
O UUID nil (00000000-0000-0000-0000-000000000000) é um valor especial definido na RFC 4122 como marcador de posição ou valor predefinido. Algumas aplicações usam-no para representar "sem valor" ou "desconhecido" em colunas de bases de dados do tipo UUID, de forma semelhante ao funcionamento do null para outros tipos de dados.
Comparação das versões UUID
O UUID v1 usa o timestamp atual e o endereço MAC do dispositivo — rápido, mas pode revelar informações sobre o dispositivo. O UUID v3 e v5 geram UUIDs determinísticos a partir de um espaço de nomes e de um nome usando MD5 e SHA-1, respetivamente. O UUID v4 usa aleatoriedade pura, oferecendo a melhor combinação de unicidade, simplicidade e privacidade. O UUID v7 (padrão em rascunho) combina um prefixo de timestamp com aleatoriedade para UUIDs ordenáveis por tempo.
O meu UUID é seguro?
Sim. A geração usa a API nativa crypto.randomUUID() do browser, que fornece aleatoriedade criptograficamente segura. Todo o processamento acontece localmente no seu dispositivo. Nenhum UUID é registado, armazenado ou transmitido para nenhum servidor.
Perguntas frequentes
Devo usar UUIDs ou IDs auto-incrementáveis?
Os UUIDs são melhores para sistemas distribuídos, arquiteturas de microsserviços e qualquer cenário onde os registos são criados em múltiplos servidores. Os IDs auto-incrementáveis são mais simples, mais pequenos (4–8 bytes vs. 16 bytes) e mais eficientes para indexação em bases de dados. Escolha com base na sua arquitetura — sistemas centralizados podem usar auto-incremento, sistemas distribuídos beneficiam dos UUIDs.
Os UUIDs precisam de ser armazenados como strings numa base de dados?
Não. A maioria das bases de dados suporta um tipo UUID nativo que armazena o valor como 16 bytes em vez da representação de string de 36 bytes. O PostgreSQL tem um tipo de coluna UUID, o MySQL pode usar BINARY(16) e o MongoDB usa o seu próprio subtipo binário UUID. Usar tipos nativos poupa espaço de armazenamento e melhora o desempenho das queries.