UUID 소개
UUID는 128비트 전역 고유 식별자이며 일반적으로 32바이트 문자열로 표시됩니다. GUID라고도 하는 시간과 공간의 고유성을 보장할 수 있습니다. 전체 이름은 UUID - Python에서 UUID라고 하는 Universally Unique IDentifier입니다.
생성된 ID의 고유성을 보장하기 위해 MAC 주소, 타임스탬프, 네임스페이스, 난수 및 의사 난수를 사용합니다.
UUID에는 크게 5가지 알고리즘, 즉 이를 구현하는 5가지 방법이 있습니다.
uuid1()
- 타임스탬프 기준. MAC 주소, 현재 타임스탬프 및 임의의 숫자에서 생성됩니다. 글로벌 고유성은 보장되지만, MAC을 사용하면 LAN에서 MAC 대신 IP를 사용할 수도 있어 보안 문제도 발생합니다.
uuid2()
——분산 컴퓨팅 환경 DCE 기반(이 기능은 Python에 존재하지 않음). 알고리즘은 타임스탬프의 처음 4개 위치가 POSIX UID로 대체된다는 점을 제외하면 uuid1과 동일합니다. 이 방법은 실제로는 거의 사용되지 않습니다.
uuid3()
- 이름 기반 MD5 해시 값입니다. 이는 이름과 네임스페이스의 MD5 해시 값을 계산하여 얻어지며, 동일한 네임스페이스에 있는 서로 다른 이름의 고유성과 서로 다른 네임스페이스의 고유성을 보장하지만, 동일한 네임스페이스에 있는 동일한 이름은 동일한 UUID를 생성합니다.
uuid4()
- 임의의 숫자를 기준으로 합니다. 의사 난수로부터 얻은 특정 반복 확률이 있으며 이 확률을 계산할 수 있습니다.
uuid5()
- 이름 기반 SHA-1 해시 값입니다. 알고리즘은 Secure Hash Algorithm 1 알고리즘이 사용된다는 점을 제외하면 uuid3과 동일합니다.
사용 예
#! coding:utf-8 import uuid print u"uuid1 生成基于计算机主机ID和当前时间的UUID" print uuid.uuid1() # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') print u"\nuuid3 基于命名空间和一个字符的MD5加密的UUID" print uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e') print u"\nuuid4 随机生成一个UUID" print uuid.uuid4() #'16fd2706-8baf-433b-82eb-8c7fada847da' print u"\nuuid5 基于命名空间和一个字符的SHA-1加密的UUID" uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') #UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d') print u"\n根据十六进制字符生成UUID" x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}') print u"转换成十六进制的UUID表现字符" print str(x) # '00010203-0405-0607-0809-0a0b0c0d0e0f'
결과
uuid1 生成基于计算机主机ID和当前时间的UUID 31a936a1-2339-11e6-8542-9cb70ded607f uuid3 基于命名空间和一个字符的MD5加密的UUID 6fa459ea-ee8a-3ca4-894e-db77e160355e uuid4 随机生成一个UUID 67e6497c-8aec-4413-9955-da86f38ff2d6 uuid5 基于命名空间和一个字符的SHA-1加密的UUID 根据十六进制字符生成UUID 转换成十六进制的UUID表现字符 00010203-0405-0607-0809-0a0b0c0d0e0f
요약
위는 UUID 라이브러리를 사용하여 고유한 ID를 생성하는 Python에 대한 내용입니다. 이 글은 모든 사람에게 도움이 될 것입니다. Python을 배우거나 사용하는 것이 도움이 될 수 있습니다. 궁금한 점이 있으면 메시지를 남겨서 소통하세요.
위 내용은 Python이 UUID 라이브러리를 사용하여 고유 ID를 생성하는 방법에 대한 자세한 설명입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!