Um GUID (Identificador Único Global) é um identificador único usado em software para identificar recursos de maneira única. A probabilidade de um GUID ser duplicado é extremamente baixa, embora não seja impossível, especialmente se os GUIDs forem gerados em sistemas com relógios dessincronizados ou geradores de números aleatórios de má qualidade.
Um GUID é geralmente gerado usando combinações da hora atual, o endereço MAC do dispositivo que gera o GUID e um número aleatório. Isso resulta em um identificador que é único para o dispositivo e o momento em que é gerado.
GUIDs são usados em uma variedade de aplicativos de software, desde a atribuição de identificadores únicos a objetos em sistemas de banco de dados até a identificação única de transações e mensagens em sistemas distribuídos.
Os GUIDs (Identificadores Globais Únicos) têm sua origem nos UUIDs (Identificadores Universais Únicos), que foram originalmente definidos como parte do padrão de software Apollo NCS (Network Computing System) em 1989. Com o tempo, tornaram-se uma forma padrão de gerar identificadores únicos em muitos sistemas de software.
Embora os termos GUID e UUID sejam frequentemente usados de forma intercambiável, há uma pequena diferença entre eles. Um GUID é uma variante específica de um UUID. Todos os GUIDs são UUIDs, mas nem todos os UUIDs são GUIDs. A principal diferença reside em como e onde são utilizados, com os GUIDs sendo comumente usados no Microsoft Windows e os UUIDs em sistemas Unix e Unix-like.
Os GUIDs podem ser gerados de várias maneiras, cada uma correspondente a uma versão diferente. Por exemplo, a versão 1 dos GUIDs é baseada no tempo atual e no endereço MAC do computador, enquanto a versão 4 é baseada em números aleatórios. A escolha da versão a ser usada depende dos requisitos específicos do sistema em questão.
Os GUIDs são úteis em uma variedade de situações em que um identificador único é necessário. Algumas aplicações práticas incluem a identificação de registros em bancos de dados, a identificação de objetos em sistemas de software e a correlação de eventos em sistemas distribuídos.