UUID (Universally Unique Identifier) é um identificador único universalmente utilizado para identificar de forma única recursos ou entidades. É um valor de 128 bits, geralmente representado por uma sequência de caracteres hexadecimal dividida em grupos separados por hífens.

O UUID é gerado de forma que seja extremamente improvável que dois identificadores gerados no mundo inteiro sejam iguais. Essa propriedade faz do UUID uma escolha comum quando é necessário criar identificadores exclusivos em sistemas distribuídos, onde várias entidades podem gerar identificadores ao mesmo tempo, sem coordenar entre si.

Existem diferentes versões de UUID, sendo a versão 4 (UUIDv4) a mais comum atualmente. O UUIDv4 é gerado de forma aleatória, usando dados aleatórios do computador ou outros dispositivos, tornando-o altamente improvável de ser duplicado.

Os UUIDs são amplamente utilizados em sistemas de banco de dados distribuídos, serviços web, identificação de dispositivos, rastreamento de transações e muitas outras aplicações onde a unicidade do identificador é essencial.

Formato UUID

O formato típico de um UUID é uma sequência de 32 caracteres hexadecimais, dividida em cinco grupos separados por hífens. Aqui está um exemplo de UUID:

550e8400-e29b-41d4-a716-446655440000

Observe que os grupos têm diferentes números de caracteres hexadecimais: 8-4-4-4-12. No total, o UUID tem 32 caracteres hexadecimais (16 bytes) mais os 4 hífens que dividem os grupos.

É importante mencionar que existem outras versões de UUID, como UUIDv1 e UUIDv3, que seguem diferentes formatos e métodos de geração baseados em timestamps e algoritmos de hashing, respectivamente. No entanto, o formato que mostrei acima é o mais comumente utilizado para o UUIDv4, que é gerado de forma aleatória.

Composição do UUID

Um UUID é composto por cinco partes principais, separadas por hífens. Essas partes têm os seguintes nomes:

  1. Time_low: É a primeira parte do UUID, composta por 8 caracteres hexadecimais. Representa os 32 bits menos significativos do timestamp ou do valor aleatório usado na geração do UUID.
  2. Time_mid: É a segunda parte do UUID, também composta por 4 caracteres hexadecimais. Representa os próximos 16 bits do timestamp ou do valor aleatório.
  3. Time_hi_and_version: É a terceira parte do UUID, composta por 4 caracteres hexadecimais. Contém os 4 bits mais significativos do timestamp, juntamente com uma versão específica do UUID. Para o UUIDv4, a versão é sempre "4".
  4. Clock_seq_hi_and_reserved: É a quarta parte do UUID, composta por 2 caracteres hexadecimais. Essa parte inclui 2 bits de sequência do relógio e 6 bits reservados para fins futuros.
  5. node: É a quinta e última parte do UUID, composta por 12 caracteres hexadecimais. Representa os 48 bits restantes da sequência do relógio.

Essas partes combinadas formam o UUID completo, garantindo a sua unicidade e permitindo sua identificação única em diversos contextos.

👨🏼‍💻 Exemplo prático

Composição do UUID

Composição do UUID

Material complementar