# Identificador único universal

Um Identificador Único Universal (do inglês Universally Unique Identifier - UUID) é um número de 128 bits usado para identificar informações em sistemas de computação. O termo Identificador Único Global (Globally Unique Identifier - GUID) também é utilizado, sobretudo nos sistemas da Microsoft.
Quando gerado de acordo com os métodos padronizados, os UUIDs são considerados únicos para fins práticos. A unicidade deles não depende de uma autoridade central de registro ou da coordenação entre as partes que os geram, diferentemente da maioria dos outros esquemas de numeração. Embora a probabilidade de um UUID ser duplicado não seja zero, ela geralmente é desprezada por ser considerada suficientemente próxima de zero.
Assim, qualquer indivíduo pode gerar um UUID e usá-lo para identificar alguma coisa com confiança satisfatória de que ele nunca será utilizado para identificar outra coisa, a não ser que alguém faça isso de forma intencional. As informações rotuladas com UUIDs por partes independentes podem, portanto, ser eventualmente reunidas em um único banco de dados ou transmitidas no mesmo canal, com uma probabilidade insignificante de duplicação.
A adoção de UUIDs e GUIDs é ampla, com muitas plataformas de computação fornecendo suporte para examiná-los e gerá-los.

## Codificação

Embora a representação textual se baseie na estrutura interna de um tipo de UUID, que se divide em campos de tamanhos variados, o formato textual é, mesmo assim, legível para os seres humanos. Veja um exemplo:
    123e4567-e89b-12d3-a456-426655440000
O objetivo dos UUIDs é permitir que sistemas distribuídos atribuam identificações únicas às informações, independentemente de uma coordenação central. Neste contexto, a palavra "única" deve ser entendida como "praticamente única", em vez de "garantidamente única". Uma vez que os identificadores possuem um tamanho limitado, é possível que dois itens diferentes compartilhem do mesmo identificador. Tal situação caracteriza uma colisão ou conflito de identificadores. O método de geração e a estrutura do identificador necessitam ser selecionados de tal forma que a probabilidade de essa colisão acontecer se torne, na prática, insignificante.

## Definição

Um UUID é um número de 16 octetos, ou seja, é composto por 128 bits.
Em seu formato padrão, dito forma canônica, um UUID é representado por 32 dígitos hexadecimais em caixa baixa, exibidos em cinco grupos separados por hifens, na forma 8-4-4-4-12, para um total de 36 caracteres (32 caracteres alfanuméricos e 4 hifens). A sua forma textual é esta:
    aaaaaaaa-bbbb-1ccc-8ddd-eeeeeeeeeeee
Em grande parte das implementações, os três primeiros grupos de caracteres são interpretadas como números inteiros, sendo um de 32 bits e dois de 16 bits, enquanto os dois grupos restantes são lidos como uma sequência de bytes. No terceiro grupo de caracteres, há um que identifica o número de versão do UUID, que vai de 1 a 5. Já no quarto grupo, um caractere identifica a sua variante, que pode ser um destes dígitos: 8, 9, a, b. O significado de cada campo é definido pela variante e pelo número de versão.
A ordem de bytes estabelecida para o UUID é big-endian, também conhecida como ordem de byte de rede. Porém, os GUIDs da Microsoft são uma exceção a essa regra, pois a ordem de seus bytes é little-endian.