ما هو uuid (معرف فريد عالميا)؟
uuid (المعرف الفريد العالمي) هو قيمة 128 بت تستخدم لتحديد كائن أو كيان فريد على الإنترنت. اعتمادًا على الآليات المحددة المستخدمة ، يُضمن أن يكون UUID إما أن يكون مختلفًا أو على الأقل من المحتمل أن يكون مختلفًا عن أي UUID آخر تم إنشاؤه حتى 3400 م.
يمكن إنشاء uuids للإشارة إلى أي شيء يمكن تخيله تقريبًا. على سبيل المثال ، يمكنهم تحديد قواعد البيانات ، ومثيلات النظام ، أو المفاتيح الأساسية ، أو ملفات تعريف Bluetooth أو أشياء مع العمر القصير.
Uuid مصطلح مماثل ل GUID، أو معرف فريد عالمي. في الأصل ، أشار GUID إلى متغير UUID الذي يستخدمه Microsoft ، لكن المصطلحات أصبحت مرادفة في طلب فرقة عمل هندسة الإنترنت (IETF) للحصول على تعليقات (RFC) 4122. تم توحيد UUID من قبل مؤسسة البرمجيات المفتوحة ، لتصبح جزءًا من بيئة الحوسبة الموزعة (DCE). تتبع إصدارات مختلفة من UUID مواصفات RFC 9562 الحديثة.
يتم إنشاء uuids باستخدام خوارزمية تستند إلى طابع زمني وعوامل أخرى ، مثل عنوان الشبكة. تشمل الأدوات المجانية لإنشاء uuids أدوات UUID أو مولد UUID عبر الإنترنت.
كيف يعمل Uuid؟
يعتمد UUID على مجموعة من المكونات لضمان التفرد. يتم بناء uuids في سلسلة من الأرقام تساوي 128 بت. الهوية في سداسي عشري الأرقام ، بمعنى أنها تستخدم الأرقام من 0 إلى 9 والأحرف من A إلى F. يتم تجميع الأرقام السداسية السداسية على أنها 32 حرفًا سداسيًا مع أربعة واصلة: xxxxxxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx فإن. عدد الأحرف في الواصلة هو 8-4-4-4-12. يشير القسم الأخير من أربعة ، أو موضع N ، إلى التنسيق والترميز في واحد إلى ثلاثة أجزاء. ضمن هذا التنسيق ، يمكن إنشاء UUIDs بشكل مستقل عبر الأنظمة دون الحاجة إلى التنسيق أو الإدارة.
على سبيل المثال ، تحتوي UUIDs على أساس الوقت على شرائح مقسومة على الواصلات التي تشير إلى انخفاض الوقت والإصدار منتصف ومنتصف ، والتي هي طوابع زمنية مختلفة تستخدم لتحديد UUID. تشير الأرقام الموجودة أسفل القسم الأخير ، العقدة ، إلى التحكم في الوصول إلى الوسائط (ماك) عنوان.

هناك ثلاثة متغيرات من UUIDs:
- البديل 0. هذا البديل محجوز ل التوافق المتخلف مع نظام الحوسبة الشبكة Apollo عفا عليه الزمن من أواخر الثمانينات. إنه مشابه في البناء مع الإصدار 1 uuids المستخدمة اليوم.
- البديل 1. البديل 1 هو البديل الرئيسي المستخدم اليوم. يشار إلى هذه المتغيرات باسم RFC 4122/DCE 1.1 UUIDs ، أو uuids leach-salz بعد مؤلفي وثيقة العمل IETF التي تحدد مواصفات UUID. على سبيل المثال ، GUIDS متغيرون 1 UUIDs.
- البديل 2. تم حجز المتغير 2 لتوافق Microsoft للخلف. على الرغم من أن العديد من GUIDS Microsoft هي متغيرة 1 UUIDs ، فإن GUIDs المبكرة على منصة Windows تستخدم المتغير 2. الفرق بين المتغيرات 1 و 2 هو عدد البتات في وضع N. البديل 1 UUIDs استخدم بتات ، بينما يستخدم المتغير 2 UUIDs ثلاثة بت.
Uuid مقابل Guid
Uuid و GUID هما تمثيلان لمفهوم واحد ، يختلفان قليلاً فقط في أصولهما واستخدامهما الشائع. فيما يلي مقارنة:
- UUID هو معرف فريد يحدده معيار IETF ، في حين أن GUID هو معرف فريد يحدده Microsoft.
- تم تقديم UUID كجزء من معيار مؤسسة البرمجيات المفتوحة. بدأ GUID كمكون في نموذج كائن مكون Microsoft.
- UUID عبارة عن منصة ويمكن تشغيلها على Linux ، في حين أن GUID هو خاص بالميكروسوفت ويتم استخدامه في سجل Windows و .NET.
- Uuid يدعم مجموعة من الإصدارات. GUID في سياق .NET يستخدم UUIDV4.
معرفات UUID و GUID متطابقة في الهيكل ؛ يتم عرض كلاهما في سداسي عشري ومواصلة. تتماشى معرفات GUID مع UUID Standard RFC 9562. في معظم السيناريوهات العملية ، يكون الاثنان قابلين للتبديل.
إصدارات uuid
البديل الحالي لـ UUID ، البديل 1 ، يتكون من خمسة إصدارات مختلفة. هذه الإصدارات تختلف في كيفية بنائها. تشمل أنواع uuids ما يلي:
- الإصدار 1. يتم إنشاء هذا الإصدار من وقت محدد و العقدة. إنه معرف مضيف فريد من نوعه.
- الإصدار 2. يتم إنشاء هذا الإصدار بشكل مشابه للنسخة 1 ؛ ومع ذلك ، يتم استبدال أجزاء أقل أهمية. وهي ثمانية أجزاء من تسلسل الساعة يتم استبدالها برقم مجال محلي ، ويتم استبدال 32 بت من الطابع الزمني برقم المجال المحلي المحدد. هذه مخصصة لأمن DCE.
- الإصدار 3. تم إنشاء هذا الإصدار بواسطة التجزئة كل من معرف مساحة الاسم واسم. يتم بناء الإصدارات 3 و 5 بالمثل. ومع ذلك ، يستخدم الإصدار 3 خوارزمية هضم الرسائل 5 (MD5) كما خوارزمية التجزئة.
- الإصدار 4. يتم إنشاء هذا الإصدار من UUID بشكل عشوائي. على الرغم من أن UUID العشوائي يستخدم بايت عشوائي ، يتم استخدام أربعة بت للإشارة إلى الإصدار 4 ، بينما يتم استخدام اثنين إلى ثلاثة بت للإشارة إلى البديل. يمكن إنشاء هذه باستخدام أ عشوائي أو مولد عدد العشوائية الزائفة. يتم استخدام المزيد من البتات في هذا الإصدار ، لذلك هناك عدد أقل من مجموعات UUID. ومع ذلك ، لا يزال هناك ما يكفي من مجموعات UUID لتجنب إمكانية حدوث تصادم.
- الإصدار 5. يتم إنشاء الإصدار 5 بنفس طريقة الإصدار 3. ومع ذلك ، يتم إنشاؤه باستخدام خوارزمية التجزئة الآمنة 1 ، أو SHA-1 ، على عكس MD5 ، والتي يستخدمها الإصدار 3 للهزنج. الإصدارات 3 و 5 مناسبة تمامًا للاستخدام كمعرفات فريدة للمعلومات والبيانات ضمن مساحة اسم النظام.
- الإصدار 6 و 7. تم تصميم هذه الإصدارات UUID الأحدث لفرز قواعد البيانات ومعالجة قيود الإصدارات السابقة.
- الإصدار 8. هذا التنسيق UUID مخصص ويمكّن التطبيقات من تضمين بيانات محددة في UUID.
نسخة إضافية من Uuid ، وحالة خاصة ، هي Nil Uuid. هذا UUID يحتوي على جميع الأصفار للأعداد الصحيحة.
تصادمات uuid
يحدث تصادم عندما يتم إنشاء نفس UUID أكثر من مرة ويتم تعيينه لكائنات مختلفة. على الرغم من أنه ممكن ، من غير المرجح أن تتكرر قيمة 128 بت من قبل أي UUID آخر. هذا الاحتمال قريب بما فيه الكفاية من الصفر ، لجميع الأغراض العملية ، أنه لا يكاد يذكر. حتى في الإصدار 4 UUIDs ، حيث يوجد عدد أقل من مجموعات UUID ، فإن فرصة الحصول على تصادم منخفضة بدرجة كافية لتجاهلها.
من المنخفض للغاية ، في الواقع ، أنه من المثير للتفكير: حوالي 2.71 Quintillion (2.71 × 10^18) ستحتاج UUIDV4s إلى إنشاء قبل أن يرتفع احتمال حدوث تصادم إلى 50 ٪.
حالات استخدام Uuid
يحتوي معرف UUID على مجموعة واسعة من التطبيقات الشائعة في الاستخدام الواسع. وتشمل هذه ما يلي:
- المفاتيح الأساسية في قواعد البيانات. يضمن UUIDs تفرد تحديد المفاتيح عبر الأنظمة الموزعة.
- تخزين الكائن. غالبًا ما يتم تسمية الملفات والكائنات الكبيرة الثنائية باستخدام UUID لضمان تفرد اسم الملف.
- واجهات برمجة التطبيق (APIs). يتم استخدام UUIDs بشكل متكرر في عناوين URL API المريحة للموارد.
- أجهزة Internet of Things (IoT). غالبًا ما تستخدم uuids لتحديد فريد أجهزة إنترنت الأشياءوأجهزة الاستشعار والعقد.
- الجلسات والرموز. تم العثور على UUIDs عادة في معرفات الجلسة ورموز المصادقة.
- blockchain. UUIDs تسهيل معرفات المعاملات الفريدة والمراجع حظر في blockchain الأنظمة.
في بعض الأحيان ، ليس استخدام Uuid فكرة جيدة ؛ على سبيل المثال ، في النظام الذي يجب أن يكون فيه المعرفات متسلسلًا تمامًا أو عند فهرسة قد يكون الفهرسة مشكلة ، كما هو الحال في قواعد البيانات العلائقية.
كيفية توليد uuid
uuids في كل مكان لدرجة أنه ليس من المستغرب أن هناك العديد من الطرق لتوليدها. يعد القيام بذلك عملية واضحة ، يتم تسهيلها بواسطة المكتبات المدمجة في جميع لغات البرمجة الأكثر استخدامًا. الخطوات التالية هي نفسها بشكل عام عبر اللغات:
- إعلان المكتبة التي تسهل إنشاء Uuid ؛ هذا يمكن أن يكون يستورد بيان أو ما يعادلها.
- استدعاء رمز المكتبة الذي يولد UUID.
- إعلان متغير في البرنامج لتخزين UUID المولدة ؛ على سبيل المثال ، يمكن أن يكون هذا uuid أو uuidv4.
مراجع المكتبة هي كما يلي:
- في بيثون ، استيراد uuid.
- في Linux ، مع سطر الأوامر uuidgen.
- في جافا ، استيراد java.util.uuid.
- في JavaScript ، const {v4: uuidv4} = require (‘uuid’).
- شركة#، GUID = Guid.NewGuid () ؛
تحتوي أجهزة Apple أيضًا على معرف فريد من نوعه معروف باسم UDID ، والذي يستخدم بشكل أساسي لربط جهاز بحساب Apple محدد. يتعلم كيف يعمل UDID والفوائد التي يوفرها أجهزة Apple.


