Gerador de UUID V5 Grátis Online

Gerador de UUIDs grátis. Gera identificadores UUID versão 5 em conformidade com RFC 4122.
NOVO!

Conheça nossa nova API GRATUITA de UUIDs. Não precisa de cadastro. Experimente agora!

UUID V5

Baseado em namespace SHA-1

O que é um UUID?

UUID é um identificador universalmente único de 128 bits usado em aplicativos, bancos de dados, arquivos e APIs. O formato padronizado permite criar identificadores únicos entre diferentes sistemas.

Sobre UUID versão v5

UUIDs versão 5 funcionam como os da versão 3, mas usam SHA-1 em vez de MD5. Maior resistência a colisões e ainda determinísticos para o mesmo namespace/nome. Definidos em RFC 4122.
UUIDs não são criptograficamente seguros. Para tokens de autenticação, use um gerador criptograficamente seguro ou uma biblioteca própria para segredos.

UUIDs: guia do usuário e conteúdo de suporte

O que é um UUID?

Um UUID (Universally Unique Identifier) é um valor de 128 bits projetado para ser único entre sistemas sem depender de uma autoridade central. Normalmente, ele é representado por 36 caracteres (32 hexadecimais e 4 hifens), por exemplo:

550e8400-e29b-41d4-a716-446655440000
  • 128 bits = 16 bytes
  • Formatos de texto: com hifens (8-4-4-4-12) ou compacto, com 32 caracteres hexadecimais
  • Maiúsculas e minúsculas: A a F podem ser maiúsculas ou minúsculas
  • UUID nil: 00000000-0000-0000-0000-000000000000 (especial “tudo zeros”)

O padrão oficial

O padrão atual da IETF é a RFC 9562 (maio de 2024), que substitui a RFC 4122. Ela esclarece versões anteriores e apresenta formatos modernos ordenáveis por tempo para melhorar o desempenho em bancos de dados e logs.


Versões de UUID e definições

VersãoIdeia-chaveUso típicoNotas
UUID v1Tempo + identificador de nóSistemas legados, correlação de logsPode expor informações de horário e host.
UUID v2DCE security (IDs POSIX)Especializado/legadoRaro fora de DCE.
UUID v3Baseado em nome (MD5)IDs estáveis a partir de um nomeDeterminístico; MD5 está desatualizado. Prefira v5.
UUID v4Aleatório (122 bits)IDs geraisSimples, muito suportado.
UUID v5Baseado em nome (SHA-1)IDs estáveis a partir de um nomeDeterminístico; mesma entrada → mesmo UUID.
UUID v6Ordenado por tempo (v1 reorganizado)Inserções ordenadasNa prática, foi substituído pelo v7.
UUID v7Tempo + aleatoriedadeChaves de bancos de dados, logs, eventosPadrão moderno para UUIDs ordenáveis.
UUID v8PersonalizadoInteroperabilidade e testesPara formatos e experimentos específicos.

Escolhas rápidas:

  • Precisa de IDs ordenáveis para melhorar a indexação no banco de dados? Use UUIDv7.
  • Precisa de IDs determinísticos a partir de uma entrada, como URL ou e-mail? Use UUIDv5.
  • Precisa de um ID simples e imprevisível, sem ordenação? Use UUIDv4.

Por que o UUIDv7 é uma boa escolha

  • Ordenável por tempo: codifica um timestamp Unix em milissegundos nos bits mais significativos, melhorando a localidade do índice e as consultas por intervalo.
  • Continua imprevisível: bits restantes são aleatórios, tornando impraticável adivinhar IDs futuros.
  • Vantagens operacionais: inserções mais eficientes em B-tree, menos divisões de página e gravação mais rápida em escala.

Se você usa v1 para ordenação, mudar para v7 oferece benefícios semelhantes sem expor identificadores de hardware.


Risco de colisão

Para v4 (122 bits aleatórios), colisões são astronomicamente improváveis. Em termos práticos, seria necessário gerar cerca de 1 bilhão de UUIDs por segundo durante aproximadamente 85 anos para alcançar cerca de 50% de chance de colisão. Use um gerador aleatório de alta qualidade.

Conclusão: em sistemas reais, trate UUIDs v4/v7 como únicos quando bem gerados.


UUIDs baseados em nome (v3/v5)

  • Combine um namespace (ex.: DNS, URL) com um nome (string) e faça hash.
  • Determinístico: as mesmas entradas sempre produzem o mesmo UUID.
  • Ótimo para chaves de idempotência, deduplicação, referências estáveis entre serviços.
  • Prefira v5 (SHA-1) em vez de v3 (MD5). Esses UUIDs são identificadores, não senhas.

Boas práticas

  1. Escolha a versão certa
    • v7 para ordem temporal e desempenho em bancos de dados.
    • v4 quando você precisa apenas de IDs aleatórios fortes.
    • v5 para IDs determinísticos de nomes (escolha um namespace fixo).
  2. Armazenamento
    • Use colunas binárias de 16 bytes (ex.: BINARY(16)) em vez de CHAR(36).
    • Em PostgreSQL, use o tipo uuid; para semântica ordenada, armazene v7.
  3. Indexação
    • Prefira v7 para evitar pontos de concentração aleatórios e melhorar a localidade do índice.
  4. Formatação
    • Aceite formatos com hifens e compactos; normalize para um único formato nos logs.
    • Aceite caracteres hexadecimais em letras maiúsculas ou minúsculas.
  5. Segurança
    • UUIDs são identificadores, não segredos. Evite expor informações por meio do v1. Não use UUIDs como tokens de autenticação.
  6. Validação
    • Exija:
      • 32 caracteres hexadecimais (compacto) ou 8-4-4-4-12 com hifens
      • Versão correta (1–8)
      • Variante correta (10xx para RFC)

FAQ


Referência rápida

Reconhecer um UUID com hifens, em letras maiúsculas ou minúsculas:

^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$

Compacto (sem hifens):

^[0-9a-fA-F]{32}$

Detecte a versão no 13º dígito hexadecimal (1 a 8) e a variante no 17º dígito (8|9|a|b).


Quando preferir IDs sequenciais

  • Precisa de inteiros estritamente monotônicos, como números de fatura.
  • Tabelas pequenas e chaves legíveis por humanos.
  • Precisa de significado de negócio embutido (UUIDs são intencionalmente opacos).

Nos demais casos, UUIDv7 é uma escolha sólida.