Tại sao UUID / GUID lại ở định dạng?


14

Mã định danh duy nhất toàn cầu (GUID) là một chuỗi được nhóm với một định dạng cụ thể mà tôi giả sử có lý do bảo mật.

GUID thường được viết bằng văn bản dưới dạng một chuỗi các chữ số thập lục phân được tách thành năm nhóm, chẳng hạn như:

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

Tại sao các chuỗi GUID / UUID không chỉ là các byte ngẫu nhiên được mã hóa bằng cách sử dụng hệ thập lục phân có độ dài X?

Ký hiệu văn bản này chứa các trường sau, được phân tách bằng dấu gạch nối:

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

Ngoài ra còn có một số phiên bản của các tiêu chuẩn UUID .

Các UUID phiên bản 4 thường được lưu trữ bên trong dưới dạng một mảng thô gồm 128 bit và thường được hiển thị theo định dạng như:

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


4
Không, có lẽ không phải vì lý do bảo mật, chuỗi bit có cùng một kiểu entropy có hoặc không có dấu gạch ngang. Tôi nghĩ rằng đó là để GUID có thể được nhận ra trong nháy mắt thay vì đi "đây là một loạt các ký tự hex, đó là md5 .. hoặc có lẽ là sha1 .. không, chờ đã, có thể là ..." và cứ thế. Ngoài ra, GUID thường không chỉ là các byte ngẫu nhiên.


Câu hỏi tương tự từ định dạng
Praveen

Câu trả lời:


11

Từ RfC4122 - Không gian nhận dạng URN duy nhất toàn cầu (UUID)

Định nghĩa chính thức của biểu diễn chuỗi UUID được cung cấp bởi ABNF sau:

UUID                   = time-low "-" time-mid "-"
                         time-high-and-version "-"
                         clock-seq-and-reserved
                         clock-seq-low "-" node

Vì vậy, đó chỉ là các lĩnh vực khác nhau từ thời điểm ban đầu và UUID dựa trên MAC . RFC cho biết nó bắt nguồn từ Hệ thống Điện toán Mạng Apollo.


2

Biểu diễn văn bản với dấu gạch ngang đang tách bốn trường của Guid / UUID thành năm nhóm (với trường cuối cùng được tách riêng sau hai byte đầu tiên): Mã hóa văn bản hướng dẫn

Đại diện không liên quan gì đến bảo mật, vì có nhiều phương pháp tính toán khác nhau và được dự định là một định danh duy nhất không nhất thiết phải là một phương thức bảo mật.

Lý do rất có thể các trường được phân chia (mặc dù tiêu chuẩn không đề cập đến nó) là để dễ đọc / tách các bộ phận thành phần.


2
Điều đó cho chúng tôi biết định dạng là gì, thông tin đã có trong câu hỏi. Nó không giải thích tại sao , đó là những gì OP đã hỏi.
Keith Thompson

1
Nó chỉ là tách chúng thành các lĩnh vực, có khả năng cho khả năng đọc và nhận dạng tốt hơn. Có lẽ cái cuối cùng được chia ra vì chiều dài của nó.
Chìa khóa trao tay

1
hợp lý. Cùng một số điện thoại, số thẻ tín dụng và nhiều số dài khác thường được chia thành các nhóm khi được in hoặc viết ra.
jwent
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.