เหตุใด UUID / GUID จึงอยู่ในรูปแบบ


14

Globally Unique Identifiers (GUID) เป็นสตริงที่จัดกลุ่มด้วยรูปแบบเฉพาะซึ่งฉันถือว่ามีเหตุผลด้านความปลอดภัย

GUID ถูกเขียนโดยทั่วไปในข้อความเป็นลำดับเลขฐานสิบหกที่แยกออกเป็นห้ากลุ่มเช่น:

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

เหตุใดสตริง GUID / UUID จึงไม่เพียงแค่เข้ารหัสแบบสุ่มโดยใช้เลขฐานสิบหกของความยาว X

สัญลักษณ์ข้อความนี้มีฟิลด์ต่อไปนี้คั่นด้วยเครื่องหมายขีดคั่น:

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

นอกจากนี้ยังมีหลายรุ่นมาตรฐาน UUID

UUIDs เวอร์ชัน 4 โดยทั่วไปจะถูกเก็บไว้ภายในเป็นอาร์เรย์แบบดิบที่ 128 บิตและโดยทั่วไปแล้วจะแสดงในรูปแบบดังนี้:

uuid: XXXXXXXXXXXX-4xxx-yxxx-XXXXXXXXXXXX


4
ไม่มันอาจไม่ใช่เพราะเหตุผลด้านความปลอดภัย bitstring มีเอนโทรปีเดียวกับที่มีหรือไม่มีเครื่องหมายขีดคั่น ฉันคิดว่ามันน่าจะเป็นที่รู้จักของ GUID ได้อย่างรวดเร็วแทนที่จะไป "นี่คือตัวละครเลขฐานสิบหกคือ md5 .. หรือบางที sha1 .. ไม่ต้องรอมันอาจเป็น ... " และต่อไป นอกจากนี้ GUID จะไม่เพียงแค่สุ่มไบต์เท่านั้น


คำถามที่คล้ายกันจากรูปแบบ
Praveen

คำตอบ:


11

จากRfC4122 - ตัวระบุเฉพาะสากล (UUID) URN Namespace

นิยามที่เป็นทางการของการแทนค่าสตริง UUID จัดทำโดย ABNF ต่อไปนี้:

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

ดังนั้นผู้ที่มีเพียงสาขาที่แตกต่างจากเดิมที่เวลาและ MAC-based UUID RFC บอกว่ามันมาจาก Apollo Network Computing System


2

การแสดงข้อความด้วยขีดกลางแยกสี่ช่องของ Guid / UUID ออกเป็นห้ากลุ่ม (โดยที่ฟิลด์สุดท้ายจะถูกแยกออกจากกันหลังจากสองไบต์แรก): การเข้ารหัสข้อความ Guid

การเป็นตัวแทนไม่ได้เกี่ยวข้องกับความปลอดภัยเนื่องจากมีวิธีการคำนวณที่แตกต่างกันและมีจุดประสงค์ให้เป็นตัวระบุที่ไม่ซ้ำกัน

สาเหตุที่เป็นไปได้มากที่สุดที่จะแยกฟิลด์ (แม้ว่ามาตรฐานไม่ได้กล่าวถึง) สำหรับการอ่าน / แยกส่วนประกอบ


2
นั่นบอกเราว่ารูปแบบคืออะไรข้อมูลที่มีอยู่แล้วในคำถาม มันไม่ได้อธิบายว่าทำไมซึ่งเป็นสิ่งที่ OP ถาม
Keith Thompson

1
มันเป็นเพียงการแยกพวกเขาลงในเขตข้อมูลมีแนวโน้มที่จะอ่านง่ายและระบุตัวตนที่ดีขึ้น บางทีอันสุดท้ายอาจถูกแยกออกไปอีกเพราะความยาวของมัน
Turnkey

1
ตรรกะ หมายเลขโทรศัพท์ด้วยเหตุผลเดียวกันหมายเลขบัตรเครดิตและหมายเลขยาวอื่น ๆ มักแบ่งเป็นกลุ่มเมื่อพิมพ์หรือจดบันทึก
jwenting
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.