Gerador de Nil UUID

Gere UUID especial com todos os zeros usado como valores sentinela em sistemas

O que é Nil UUID?

Nil UUID é uma forma especial de UUID onde todos os 128 bits são definidos como zero. É representado como:

00000000-0000-0000-0000-000000000000

O Nil UUID serve como um valor reservado especial no ecossistema UUID, definido na RFC 4122. Tem um significado semântico específico como um identificador "vazio" ou "nulo" quando um UUID é necessário, mas nenhum identificador real é apropriado.

Como o Nil UUID funciona

  1. É uma constante predefinida com todos os 128 bits definidos como zero
  2. Tecnicamente segue o formato UUID de 32 dígitos hexadecimais com hífens no padrão 8-4-4-4-12
  3. Não possui bits de versão ou variante porque todos os bits são zeros
  4. É explicitamente identificado na RFC 4122 como um UUID especial
  5. Pode ser usado como um valor sentinela ou marcador de posição em sistemas que trabalham com UUIDs

Vantagens e Considerações

AdvantagesConsiderations
  • Valor especial reconhecido universalmente
  • Útil como estado padrão/vazio
  • Fácil de verificar (todos zeros)
  • Valor sentinela consistente entre sistemas
  • Não é globalmente único (por design)
  • Nunca deve ser usado como um identificador real
  • Pode ser interpretado erroneamente como um erro ou valor não inicializado
  • Pode exigir tratamento especial em sistemas

Estrutura do Nil UUID

BitsContent
0-127Todos zeros (0x00000000000000000000000000000000)

Ao contrário dos UUIDs padrão que têm bits específicos de versão e variante definidos, o Nil UUID tem todos os bits definidos como zero, incluindo o que normalmente seriam os bits de versão e variante.

Nil UUID vs. outras versões

VersionBaseado emCaso de usoUniqueness
Nil UUIDConstante (todos zeros)Valor especial, marcador de posição❌ Não único (por design)
UUID v1Tempo + MACIDs ordenados por tempo✅ Globalmente único
UUID v3Namespace + MD5IDs determinísticos✅ Único por entrada
UUID v4RandomIDs aleatórios seguros✅ Estatisticamente único
UUID v5Namespace + SHA-1IDs determinísticos✅ Único por entrada
UUID v6Tempo (reordenado)IDs ordenáveis✅ Globalmente único
UUID v7Tempo + aleatórioIDs ordenáveis✅ Globalmente único

Casos de Uso Comuns

  • Valores padrão: Estado inicial antes de um UUID real ser atribuído
  • Valores sentinela: Marcador especial em sistemas que requerem UUIDs
  • Detecção de erros: Indicador de UUID não inicializado ou ausente
  • Marcadores de banco de dados: Quando um UUID real está pendente ou não aplicável
  • Objetos raiz: Relações pai-filho onde a raiz não tem pai
  • Funções especiais: Operações do sistema que precisam de um valor UUID conhecido
  • Testing: Valor marcador de posição em ambientes de teste

Perguntas Frequentes

O Nil UUID é um UUID válido?

Sim. O Nil UUID é explicitamente definido na RFC 4122 como um UUID especial. Embora não siga as regras normais de versão/variante, é um valor UUID reconhecido com semântica especial.

Posso usar o Nil UUID como identificador?

Não. Você nunca deve usar o Nil UUID como um identificador real. É um valor reservado especial destinado a representar a ausência de um UUID ou um estado padrão. Usá-lo como um identificador comum violaria seu propósito especial.

Como verifico se um UUID é o Nil UUID?

Basta comparar o UUID com a string "00000000-0000-0000-0000-000000000000" ou verificar se todos os bits são zero. A maioria das bibliotecas UUID fornece uma função específica para verificar o Nil UUID.

Todos os sistemas reconhecem o Nil UUID como especial?

Nem sempre. Embora esteja definido na RFC, nem todos os sistemas podem tratá-lo de forma especial. Alguns bancos de dados podem permitir como um valor válido, enquanto outros podem rejeitá-lo ou atribuir semânticas especiais.

Existe diferença entre Nil UUID e um UUID vazio?

Em sistemas corretamente implementados, "Nil UUID" e "UUID vazio" devem se referir ao mesmo conceito: o UUID com todos os zeros. No entanto, alguns sistemas podem ter representações diferentes para "vazio" vs. "nil", então é importante verificar a implementação específica.

Resources