Hướng dẫn python uuid duplicate - bản sao python uuid

Tôi đang sử dụng chức năng UUID của Python để tạo ID duy nhất cho các đối tượng được lưu trữ trong cơ sở dữ liệu:

>>> import uuid
>>> print uuid.uuid4()
2eec67d5-450a-48d4-a92f-e387530b1b8b

Có ổn không khi cho rằng đây thực sự là một ID duy nhất?

Hoặc tôi nên kiểm tra kỹ rằng ID duy nhất này chưa được tạo đối với cơ sở dữ liệu của tôi trước khi chấp nhận nó là hợp lệ.

Đã hỏi ngày 1 tháng 6 năm 2014 lúc 18:30Jun 1, 2014 at 18:30

Hướng dẫn python uuid duplicate - bản sao python uuid

3

Tôi sẽ sử dụng uuid1, không có cơ hội va chạm vì thời gian/thời gian khi tạo UUID (trừ khi bạn tạo ra một số lượng lớn UUID cùng một lúc).

Bạn thực sự có thể đảo ngược giá trị UUID1 để truy xuất thời gian kỷ nguyên ban đầu được sử dụng để tạo ra nó.

uuid4 tạo ra một ID ngẫu nhiên có cơ hội rất nhỏ để va chạm với giá trị được tạo trước đó, tuy nhiên vì nó không sử dụng thời gian Epoch tăng đơn điệu như một đầu vào (hoặc bao gồm nó trong UUID đầu ra), một giá trị đã được tạo trước đó Một cơ hội nhỏ (rất) nhỏ được tạo ra trong tương lai.

Đã trả lời ngày 1 tháng 6 năm 2014 lúc 18:38Jun 1, 2014 at 18:38

Martin Konecnymartin KonecnyMartin Konecny

55,7K19 Huy hiệu vàng134 Huy hiệu bạc151 Huy hiệu đồng19 gold badges134 silver badges151 bronze badges

1

Bạn nên luôn luôn có một kiểm tra trùng lặp, mặc dù tỷ lệ cược là khá tốt, bạn luôn có thể có các bản sao.

Tôi sẽ khuyên bạn chỉ nên thêm một ràng buộc khóa trùng lặp trong cơ sở dữ liệu của bạn và trong trường hợp thử lại lỗi.

Đã trả lời ngày 1 tháng 6 năm 2014 lúc 18:37Jun 1, 2014 at 18:37

WolphwolphWolph

76.1K10 Huy hiệu vàng132 Huy hiệu bạc147 Huy hiệu đồng10 gold badges132 silver badges147 bronze badges

Miễn là bạn tạo tất cả các UUID trên cùng một hệ thống, trừ khi có một lỗ hổng rất nghiêm trọng trong việc thực hiện Python (điều mà tôi thực sự không thể tưởng tượng), RFC 4122 nói rằng tất cả chúng sẽ khác biệt (chỉnh sửa: nếu sử dụng phiên bản 1,3 hoặc 5) .cannot imagine), RFC 4122 states that they will all be distinct (edited : if using version 1,3 or 5).

Vấn đề duy nhất có thể phát sinh với UUID, là nếu hai hệ thống tạo UUID chính xác vào cùng một thời điểm và:

  • Sử dụng cùng một địa chỉ MAC trên thẻ mạng của họ (thực sự không phổ biến) và bạn đang sử dụng phiên bản UUID 1
  • hoặc sử dụng cùng tên và bạn đang sử dụng phiên bản UUID 3 hoặc 5
  • hoặc có cùng một số ngẫu nhiên và bạn đang sử dụng phiên bản UUID 4 (*)

Vì vậy, nếu bạn có địa chỉ MAC thực hoặc sử dụng tên DNS chính thức hoặc LDAP DN duy nhất, bạn có thể thực hiện đúng rằng các UUID được tạo sẽ là duy nhất trên toàn cầu.

Vì vậy, IMHO, bạn chỉ phải kiểm tra Unicity nếu bạn muốn ngăn chặn ứng dụng của mình chống lại một cuộc tấn công độc hại khi cố gắng tự nguyện sử dụng UUID tồn tại.

Chỉnh sửa: Như Martin Konecny ​​đã nêu, trong UUID4, phần Dấu thời gian cũng là ngẫu nhiên và không đơn điệu. Vì vậy, sở hữu là va chạm rất hạn chế nhưng không phải 0.very limited but not 0.

Đã trả lời ngày 1 tháng 6 năm 2014 lúc 18:51Jun 1, 2014 at 18:51

Hướng dẫn python uuid duplicate - bản sao python uuid

Serge Ballestaserge BallestaSerge Ballesta

Huy hiệu vàng 139K1111 gold badges115 silver badges235 bronze badges

Mã nguồn: lib/uuid.py Lib/uuid.py Lib/uuid.py


Mô -đun này cung cấp các đối tượng UUID bất biến (lớp UUID) và các hàm uuid1(), uuid3(),

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
0,
>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
1 để tạo phiên bản 1, 3, 4 và 5 UUID được chỉ định trong RFC 4122.RFC 4122.RFC 4122.

Nếu tất cả những gì bạn muốn là một ID duy nhất, có lẽ bạn nên gọi uuid1() hoặc

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
0. Lưu ý rằng uuid1() có thể thỏa hiệp quyền riêng tư vì nó tạo ra UUID chứa địa chỉ mạng máy tính.
>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
0 tạo ra một UUID ngẫu nhiên.

Tùy thuộc vào sự hỗ trợ từ nền tảng cơ bản, uuid1() có thể hoặc không thể trả lại một UUID an toàn. UUID an toàn là một phương pháp được tạo bằng các phương pháp đồng bộ hóa để đảm bảo không có hai quy trình nào có thể có được cùng một UUID. Tất cả các trường hợp của UUID đều có thuộc tính

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
4 chuyển tiếp bất kỳ thông tin nào về sự an toàn của UUID, sử dụng bảng liệt kê này: Lớp ________ 15 ________ 16¶

Mới trong phiên bản 3.7.

________ 17¶

UUID được tạo bởi nền tảng theo cách an toàn đa xử lý.()¶

________ 18¶RFC 4122. “Hardware address” means the MAC address of a network interface. On a machine with multiple network interfaces, universally administered MAC addresses (i.e. where the second least significant bit of the first octet is unset) will be preferred over locally administered MAC addresses, but with no other ordering guarantees.

UUID không được tạo ra theo cách an toàn đa xử lý.Universally administered MAC addresses are preferred over locally administered MAC addresses, since the former are guaranteed to be globally unique, while the latter are not.

________ 15 ________ 63 (Node = none, clock_seq = none) ¶(node=None, clock_seq=None)¶

Tạo UUID từ ID máy chủ, số thứ tự và thời gian hiện tại. Nếu nút không được cung cấp,

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
04 được sử dụng để có được địa chỉ phần cứng. Nếu clock_seq được đưa ra, nó được sử dụng làm số thứ tự; Nếu không, một số chuỗi 14 bit ngẫu nhiên được chọn.

________ 15 ________ 66 (không gian tên, tên)(namespace, name)¶(hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None, *, is_safe=SafeUUID.unknown)

Tạo UUID dựa trên băm MD5 của định danh không gian tên (là UUID) và một tên (là một chuỗi).

UUID('{12345678-1234-5678-1234-567812345678}')
UUID('12345678123456781234567812345678')
UUID('urn:uuid:12345678-1234-5678-1234-567812345678')
UUID(bytes=b'\x12\x34\x56\x78'*4)
UUID(bytes_le=b'\x78\x56\x34\x12\x34\x12\x78\x56' +
              b'\x12\x34\x56\x78\x12\x34\x56\x78')
UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678))
UUID(int=0x12345678123456781234567812345678)

Chính xác một trong các hex, byte, byte_le, trường hoặc int phải được cung cấp. Đối số phiên bản là tùy chọn; Nếu được đưa ra, UUID kết quả sẽ có biến thể và số phiên bản của nó theo RFC 4122, ghi đè các bit trong hex, byte, byte_le, trường, hoặc int.RFC 4122, overriding bits in the given hex, bytes, bytes_le, fields, or int.RFC 4122, overriding bits in the given hex, bytes, bytes_le, fields, or int.

So sánh các đối tượng UUID được thực hiện bằng cách so sánh các thuộc tính ____22 của chúng. So sánh với một đối tượng không thuộc UUID làm tăng UUID3.

UUID4 Trả về một chuỗi ở dạng UUID5 trong đó 32 chữ số thập lục phân đại diện cho UUID.

UUID Các trường hợp có các thuộc tính chỉ đọc sau:

________ 27 ________ 28¶

UUID dưới dạng chuỗi 16 byte (chứa sáu trường số nguyên theo thứ tự byte lớn).

________ 27 ________ 30¶

UUID dưới dạng chuỗi 16 byte (với Time_Low, Time_Mid và Time_Hi_Version theo thứ tự byte endian nhỏ).

________ 27 ________ 32¶

Một tuple của sáu trường số nguyên của UUID, cũng có sẵn dưới dạng sáu thuộc tính riêng lẻ và hai thuộc tính dẫn xuất:

Đồng ruộng

Nghĩa

UUID3

32 bit đầu tiên của UUID

UUID4

16 bit tiếp theo của UUID

UUID5

16 bit tiếp theo của UUID

UUID6

8 bit tiếp theo của UUID

UUID7

8 bit tiếp theo của UUID

UUID8

48 bit cuối cùng của UUID

UUID9

dấu thời gian 60 bit

uuid1()0

Số trình tự 14 bit

________ 27 ________ 42¶

UUID dưới dạng chuỗi thập lục phân 32 ký tự.

________ 27 ________ 44¶

UUID dưới dạng số nguyên 128 bit.

________ 27 ________ 46¶

UUID dưới dạng bình theo quy định trong RFC 4122.RFC 4122.RFC 4122.

________ 27 ________ 48¶

Biến thể UUID, xác định bố cục bên trong của UUID. Đây sẽ là một trong những hằng số uuid1()9, uuid3()0, uuid3()1 hoặc uuid3()2.

________ 27 ________ 54¶

Số phiên bản UUID (1 đến 5, chỉ có ý nghĩa khi biến thể là uuid3()0).

________ 27 ________ 57¶

Việc liệt kê uuid3()8 cho biết liệu nền tảng có tạo ra UUID theo cách an toàn đa xử lý hay không.

Mới trong phiên bản 3.7.

________ 17¶

UUID được tạo bởi nền tảng theo cách an toàn đa xử lý.()¶()

________ 18¶RFC 4122. “Hardware address” means the MAC address of a network interface. On a machine with multiple network interfaces, universally administered MAC addresses (i.e. where the second least significant bit of the first octet is unset) will be preferred over locally administered MAC addresses, but with no other ordering guarantees.RFC 4122. “Hardware address” means the MAC address of a network interface. On a machine with multiple network interfaces, universally administered MAC addresses (i.e. where the second least significant bit of the first octet is unset) will be preferred over locally administered MAC addresses, but with no other ordering guarantees.

UUID không được tạo ra theo cách an toàn đa xử lý.Universally administered MAC addresses are preferred over locally administered MAC addresses, since the former are guaranteed to be globally unique, while the latter are not.Universally administered MAC addresses are preferred over locally administered MAC addresses, since the former are guaranteed to be globally unique, while the latter are not.

________ 15 ________ 63 (Node = none, clock_seq = none) ¶(node=None, clock_seq=None)¶(node=None, clock_seq=None)

Tạo UUID từ ID máy chủ, số thứ tự và thời gian hiện tại. Nếu nút không được cung cấp,

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
04 được sử dụng để có được địa chỉ phần cứng. Nếu clock_seq được đưa ra, nó được sử dụng làm số thứ tự; Nếu không, một số chuỗi 14 bit ngẫu nhiên được chọn.

________ 15 ________ 66 (không gian tên, tên)(namespace, name)¶(namespace, name)

Tạo UUID dựa trên băm MD5 của định danh không gian tên (là UUID) và một tên (là một chuỗi).

________ 15 ________ 68 ()()¶()

Tạo UUID ngẫu nhiên.

________ 15 ________ 70 (không gian tên, tên)(namespace, name)¶(namespace, name)

Tạo UUID dựa trên băm SHA-1 của định danh không gian tên (là UUID) và một tên (là một chuỗi).

Mô -đun uuid3()9 xác định các định danh không gian tên sau để sử dụng với uuid3() hoặc

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')
1.

________ 15 ________ 75¶

Khi không gian tên này được chỉ định, chuỗi tên là một tên miền đủ điều kiện.

________ 15 ________ 77¶

Khi không gian tên này được chỉ định, chuỗi tên là URL.

________ 15 ________ 79¶

Khi không gian tên này được chỉ định, chuỗi tên là một iso oid.

________ 15 ________ 81¶

Khi không gian tên này được chỉ định, chuỗi tên là X.500 DN ở định dạng đầu ra văn bản.

Mô -đun uuid3()9 xác định các hằng số sau cho các giá trị có thể của thuộc tính uuid1()3:

________ 15 ________ 85¶

Dành riêng cho khả năng tương thích NCS.

________ 15 ________ 87¶

Chỉ định bố cục UUID được đưa ra trong RFC 4122.RFC 4122.RFC 4122.

________ 15 ________ 89¶

Dành cho khả năng tương thích của Microsoft.

________ 15 ________ 91¶

Dành riêng cho định nghĩa trong tương lai.

Xem thêm

RFC 4122 - Một không gian tên định danh độc đáo (UUID) phổ biến - A Universally Unique IDentifier (UUID) URN Namespace - A Universally Unique IDentifier (UUID) URN Namespace

Thông số kỹ thuật này xác định một tên tên tên tài nguyên thống nhất cho UUID, định dạng nội bộ của UUID và các phương thức tạo UUID.

Thí dụ¶

Dưới đây là một số ví dụ về cách sử dụng điển hình của mô -đun uuid3()9:

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')