ما هو إصدار UUID؟

UUID (المعرّف الفريد العالمي) هو معرّف بطول 128 بت، موحّد وفق RFC 4122 وRFC 9562. يحتوي كل UUID على حقل إصدار يشير إلى طريقة توليده. يُشفَّر الإصدار في الرقم السادس عشري الثالث عشر (النيبل العلوي للبايت السابع)، ويحدد الخوارزمية ومصادر البيانات المستخدمة في إنشاء المعرّف.

يوجد حاليًا ثمانية إصدارات محددة (من v1 إلى v8)، إضافةً إلى شكلين خاصين: Nil UUID (جميع البتات أصفار) وMax UUID (جميع البتات آحاد). يخدم كل إصدار غرضًا مختلفًا — فبعضها يُضمّن طوابع زمنية للترتيب الزمني، وبعضها يستخدم تجزئة تشفيرية للتوليد الحتمي، وبعضها الآخر يعتمد على أرقام عشوائية لبساطة الاستخدام. معرفة الإصدار تساعدك على فهم خصائص UUID وانعكاساته الأمنية وحالة الاستخدام المقصودة.

حقل المتغيّر (variant)، المُشفَّر بشكل منفصل، يحدد مواصفات UUID التي يتوافق معها المعرّف. تستخدم معظم UUID الحديثة متغيّر RFC 4122/RFC 9562، غير أن الأنظمة القديمة قد تنتج متغيّرات NCS أو Microsoft.

وصف الأداة

تأخذ هذه الأداة أي UUID كمدخل وتحدد رقم إصداره واسمه والمتغيّر الخاص به وطريقة التوليد ووصفًا تفصيليًا لآلية عمل ذلك الإصدار. تدعم الأداة جميع الإصدارات القياسية (من v1 إلى v8)، فضلًا عن Nil UUID وMax UUID. ما عليك سوى لصق UUID لترى فورًا تفاصيله الكاملة.

أمثلة

UUID المُدخَل الإصدار الاسم
550e8400-e29b-41d4-a716-446655440000 4 عشوائي (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 مبني على الوقت (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 مبني على Unix Epoch Time (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

المميزات

  • يكتشف جميع إصدارات UUID من v1 إلى v8، إضافةً إلى Nil UUID وMax UUID
  • يحدد المتغيّر (RFC 4122/9562، أو NCS، أو Microsoft، أو Reserved)
  • يعرض وصفًا مقروءًا يشرح كيفية توليد الإصدار
  • يُظهر طريقة التوليد المستخدمة لإنشاء UUID
  • تعرّف فوري في الوقت الفعلي أثناء الكتابة أو اللصق

حالات الاستخدام

  • تصحيح أخطاء الأنظمة الموزعة: تحديد ما إذا كانت UUID في سجلاتك مبنية على الوقت (v1/v6/v7) أو عشوائية (v4) لمعرفة ما إذا كانت تحمل طوابع زمنية مضمّنة يمكن استخراجها.
  • تحسين قواعد البيانات: تحديد ما إذا كانت مفاتيحك الأساسية تستخدم إصدار UUID قابلًا للترتيب (v6، v7) أو إصدارًا عشوائيًا (v4) قد يتسبب في تجزئة الفهرس.
  • التدقيق الأمني: اكتشاف UUID من النوع v1 التي قد تكشف عناوين MAC أو طوابع زمنية، مما يساعدك على تقييم مخاطر الإفصاح عن المعلومات.

آلية العمل

تُحلّل الأداة البنية السادسة عشرية لـ UUID لاستخراج حقلين رئيسيين:

  1. الإصدار: يُقرأ من الرقم السادس عشري الثالث عشر (الفهرس 12 في string السادس عشري المجرّد). يُشفّر هذا النيبل رقم الإصدار مباشرةً (من 1 إلى 8). يُكتشف Nil UUID وMax UUID بالتحقق من كون جميع البتات أصفارًا أو آحادًا.
  2. المتغيّر: يُحدَّد من خلال البتات الأكثر أهمية في الرقم السادس عشري السابع عشر (الفهرس 16). يُعيَّن نمط البتات إلى إحدى أربع عائلات متغيّرة: NCS، أو RFC 4122/9562، أو Microsoft، أو Reserved.

إصدارات UUID في لمحة سريعة

الإصدار الاسم الخاصية الرئيسية
v1 مبني على الوقت طابع زمني + عنوان MAC
v2 DCE Security طابع زمني + MAC + POSIX UID/GID
v3 مبني على الاسم (MD5) حتمي من namespace + الاسم
v4 عشوائي 122 بت عشوائي
v5 مبني على الاسم (SHA-1) حتمي، تجزئة أقوى من v3
v6 مبني على الوقت مُعاد ترتيبه متغيّر قابل للترتيب من v1
v7 مبني على Unix Epoch Time طابع زمني بالميلي ثانية + عشوائي، مثالي لمفاتيح قواعد البيانات
v8 مخصص خاص بالمورّد أو تجريبي
Nil Nil UUID جميع البتات الـ 128 مضبوطة على صفر
Max Max UUID جميع البتات الـ 128 مضبوطة على واحد

الأسئلة الشائعة

ما الفرق بين إصدار UUID ومتغيّره؟ يشير الإصدار إلى خوارزمية التوليد (مبنية على الوقت، أو عشوائية، أو مبنية على التجزئة، إلخ)، بينما يحدد المتغيّر المواصفات التي يتوافق معها UUID (RFC 4122، أو NCS، أو Microsoft). معظم UUID التي ستصادفها ستكون من متغيّر RFC 4122/9562.

أي إصدار UUID يجب أن أستخدم؟ لمعظم التطبيقات، يُعدّ v4 (العشوائي) الأبسط والأوسع دعمًا. إذا كنت بحاجة إلى معرّفات قابلة للترتيب الزمني لمفاتيح أساسية في قواعد البيانات، فإن v7 هو التوصية الحديثة. استخدم v5 عندما تحتاج إلى UUID حتمية مشتقة من اسم معين.

هل تستطيع هذه الأداة استخراج الطابع الزمني من UUID؟ تحدد هذه الأداة الإصدار والمتغيّر فقط. لاستخراج الطوابع الزمنية المضمّنة من UUID من النوع v1 أو v6 أو v7، استخدم أداة UUID Time Extractor المخصصة لذلك.