2017-09-05 8 views
5

이 컴퓨터가 생성하는 모든 GUID의 중간에 왜 4가 표시됩니까?항상 동등한 번호의 GUID

enter image description here

+4

간단한 구글 검색 결과 : '자리 M의 4 비트는 HTTPS version' UUID를 나타냅니다를 : //en.wikipedia.org/wiki/Universally_Unique_Identifier –

+0

글쎄 그것은 특별한 것이 었습니다. 기계와 관련된 것이 었습니다. –

+0

이것이 GUID를 난수로 사용해서는 안되는 이유입니다. 좋습니다. 버전 4 GUID는 주로 임의 비트로 구성되지만 일부 비트는 RFC 4122를 준수하도록 고정되어 있습니다. 128 개의 임의 비트가 필요한 경우 적절한 난수 생성기를 사용하십시오. –

답변

7

그것은 GUID 알고리즘 (귀하의 경우 4) 버전의 :

https://en.wikipedia.org/wiki/Universally_unique_identifier

의 정식 텍스트 표현에서는, UUID 의 16 개의 옥텟은 32으로 표시됩니다 개의 그룹이 하이픈으로 구분 된 16 진수 (16 진수) 숫자로 8-4- 4-4-12 총 36 자 (영숫자 32 자 및 하이픈 4 자). 예를 들어

123e4567-e89b-12d3-a456-426655440000 
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 

숫자 M의 4 비트는 UUID 버전을 나타내고, 숫자 N의 하나 세 개의 최상위 비트는 UUID 변형을 나타낸다. 예에서 M은 1이고 N은 (10xx)이며 이는 UUID가 변형 1, 버전 1 UUID임을 의미합니다. 즉, 시간 기반 DCE/RFC 4122 UUID입니다.

+0

나는이 대답을 받아 들일 것이다. 어쩌면 어리석은 질문 일 것이다. 모든 것을 통합하는 대신에, 왜 그들은 숯을 쓰고 있는가? –

+0

@Marco Salerno : 나는 당신을 따르지 않는다 : UUID는 * xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx에 문자열 *로 표시 될 수있는 * 128 비트 숫자 *이다. 세 번째 청크 -'Mxxx '는 실제로 * 16 비트 정수 *입니다 (16 진수 표현). 최상위 * 4 비트 * -'M '은 버전입니다 (그래서 우리는 0..15 범위에서 가질 수 있습니다). 나는 어떤 * char * 문자도 볼 수 없다. –

+0

내 말은, 왜 문자열로 해석 될 때, 그들은 -로 청크를 나눕니 까? –

1

이것은 사용중인 GUID/UUID's의 버전 때문입니다.

일부 좋은 정보

here을 발견 할 수 있지만, basicly이는 다음과 같은 형식으로 사용하는 버전 4입니다

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx