GUID(Globally Unique Identifier)

Linux 2014. 11. 23. 21:35
728x90
GUID(Globally Unique Identifier)
전역 고유 식별자(GUID)는 응용 소프트웨어에서 사용되는 유사 난수이다. 
GUID는 생성할 때 항상 유일한 값이 만들어진다는 보장은 없지만, 사용할 수 있는 모든 값의 수가 
2128 = 3.4028×1038개로 매우 크기 때문에, 적절한 알고리즘이 있다면 같은 숫자를 두 번 생성할 가능성은 매우 적다.

GUID는 오라클 데이터베이스 등 많은 곳에서 쓰이지만, 가장 눈에 띄는 구현은 아마도 마이크로소프트의 구현일 것이다.
표준으로는 오픈 소프트웨어 파운데이션(Open Software Foundation, OSF)
지정한 범용 고유 식별자(Universally Unique Identifier, UUID)가 있다.

기본 구조
GUID는 16바이트, 즉 128비트 숫자이다. 16진수로 쓰면 다음과 같은 형태이다
3F 25 04 E0 4F 89 11 D3 9A 0C 03 05 E8 2C 33 01
특별히 규정된 텍스트 표현이 없기 때문에, GUID를 텍스트로 쓰는 방법은 구현에 따라 다를 수 있다. 
많이 사용되는 표현 중 하나로 GUID를 순서대로 4바이트, 2바이트, 2바이트, 8바이트로 나눈 뒤 하이픈으로 구분하여 
16진수로 작성하고 중괄호로 묶는 방법이 있다. 다음은 위의 GUID를 이 방법으로 표현한 것이다.
{3F2504E0-4F89-11D3-9A0C0305E82C3301}

알고리즘
새로운 GUID를 생성하는 OSF의 알고리즘(V1 GUID)은 광범위한 비판을 받고 있다. 
이 알고리즘은 GUID의 마지막 숫자 그룹을 생성할 때 사용자 네트워크 카드의 MAC 주소를 기반으로서 사용하기 때문에,
특정 문서를 작성한컴퓨터를 추적하는 일 등이 가능하도록 하고 있다. 
이러한 헛점은 멜리사(Melissa) 웜을 만든 개발자를 찾는데 사용되기도 하였다.
MAC 주소를 사용하는 V1 GUID는 {2f1e4fc0-81fd-11da-9156-00036a0f876a}와 같이 세 번째 숫자 그룹의 첫 번째 숫자에 "1"을 사용한다
이후의 알고리즘을 사용하는 GUID는 MAC 주소 대신 임의의 숫자를 사용하며, 
{38a52be4-9352-453e-af97-5c3b448652f0}처럼 숫자 "4"를 사용한다.


반응형