Por que os UUID / GUID estão no formato em que estão?


14

Globally Unique Identifiers (GUID) são uma sequência agrupada com um formato específico que, suponho, tem um motivo de segurança.

Um GUID normalmente é escrito em texto como uma sequência de dígitos hexadecimais separados em cinco grupos, como:

3F2504E0-4F89-11D3-9A0C-0305E82C3301

Por que as seqüências de caracteres GUID / UUID não são apenas bytes aleatórios codificados usando hexadecimal de comprimento X?

Esta notação de texto contém os seguintes campos, separados por hífens:

| Hex digits | Description
|-------------------------
| 8            | Data1
| 4            | Data2
| 4            | Data3
| 4            | Initial two bytes from Data4
| 12           | Remaining six bytes from Data4

Existem também várias versões dos padrões UUID .

Os UUIDs da versão 4 geralmente são armazenados internamente como uma matriz bruta de 128 bits e geralmente são exibidos em um formato como:

uuid: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx


4
Não, provavelmente não é por motivos de segurança, a cadeia de bits tem a mesma entropia com ou sem os traços. Eu acho que é assim que os GUIDs podem ser reconhecidos rapidamente, em vez de dizer "aqui está um monte de caracteres hexadecimais, é que md5 .. ou talvez sha1 .. não, espere, poderia ser ..." e assim por diante. Além disso, os GUIDs geralmente não são apenas bytes aleatórios.


Pergunta semelhante do formato
Praveen 12/09

Respostas:



2

A representação de texto com os hífens está separando os quatro campos do Guid / UUID em cinco grupos (com o último campo sendo separado após os dois primeiros bytes): Codificação de texto do Guid

A representação não tem nada a ver com segurança, pois existem métodos diferentes de calculá-la e pretende ser um identificador exclusivo, não necessariamente seguro.

O motivo mais provável de os campos serem divididos (mesmo que o padrão não o mencione) é a legibilidade / separação das partes do componente.


2
Isso nos diz qual é o formato, informações que já estavam na pergunta. Não explica o porquê , o que o OP estava perguntando.
21812 Keith Thompson

1
É apenas separá-los nos campos, provavelmente para melhor legibilidade e identificação. Talvez o último tenha sido dividido ainda mais por causa de seu comprimento.
Turnkey

1
lógico. Mesmo motivo, números de telefone, números de cartão de crédito e muitos outros números longos são frequentemente divididos em grupos quando impressos ou escritos.
jwenting
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.