مولّد UUID

أنشئ معرّفات فريدة عالمياً (UUIDs) باستخدام خوارزميات الطابع الزمني لمنع التكرار.

اختصارات لوحة المفاتيح: R لإعادة توليد UUID أو C لنسخه

كيف تعمل UUIDs

UUID v1 (معتمد على الطابع الزمني): يستخدم الطابع الزمني الحالي (فترات 100 نانوثانية منذ 15 أكتوبر 1582) مدمجاً مع عنوان MAC أو معرّف عقدة عشوائي. هذا يضمن التفرد عبر الأجهزة المختلفة ويمنع التكرار حتى عند التوليد المتزامن.

UUID v4 (عشوائي): يستخدم أرقاماً عشوائية قوية تشفيرياً. بينما من الممكن نظرياً وجود تكرارات، فإن الاحتمال منخفض جداً (1 في 2^122) بحيث يكون مهملاً للأغراض العملية.

UUID v7 (طابع زمني حديث): أحدث إصدار UUID يجمع بين طابع زمني Unix (48 بت) وبيانات عشوائية (74 بت). يوفر هذا فوائد الترتيب الزمني من v1 مع الحفاظ على خصوصية v4، مما يجعله مثالياً لمفاتيح قاعدة البيانات الأساسية.

الصيغة: UUIDs هي قيم 128 بت تُعرض كـ 32 رقماً سداسي عشري بالصيغة: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

حالات الاستخدام الشائعة

تمنحك UUIDs (المعروفة أيضًا باسم GUIDs) مجموعة غير محدودة عمليًا من المعرفات الفريدة دون التنسيق مع جهة مركزية. فيما يلي بعض الأماكن التي تُستخدم فيها بشكل شائع:

المفاتيح الأساسية لقواعد البيانات

تتيح UUIDs لعدة خدمات أو شظايا توليد المفاتيح بشكل مستقل دون تعارضات. يُفضَّل UUID v7 بشكل متزايد لأن الطابع الزمني في مقدمته يحافظ على محلية الإدراج ويبقي الفهارس مضغوطة.

الأنظمة الموزعة

عندما تُنتج الأحداث من قِبل عقد كثيرة، فإن UUID لكل حدث يتجنب عنق الزجاجة الخاص بتسلسل مركزي ويُبقي السجلات قابلة للتتبع عبر حدود الخدمات.

المعرفات العامة

لا يكشف UUID v4 في عنوان URL عن عدد السجلات الموجودة أو يعرض هجمات التعداد كما يفعل عدد صحيح تصاعدي.

مفاتيح عدم التكرار

يقوم العملاء بتوليد UUID لكل طلب حتى يتمكن الخادم من التعرف على المحاولات المتكررة وتجنب معالجة نفس الإجراء مرتين.

أي إصدار يجب أن تستخدم؟

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

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

ما هو UUID؟

UUID (معرف فريد عالميًا) هو قيمة بحجم 128-bit، تُكتب عادةً كـ 32 رقمًا ست عشريًا بالصيغة xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. تُولّد الإصدارات المختلفة القيمة باستخدام استراتيجيات مختلفة (عشوائية، طابع زمني، أو كلاهما).

ما الفرق بين UUID وGUID؟

يشيران إلى نفس الشيء. GUID (معرف فريد عالميًا) هو الاسم المستخدم في منظومة Microsoft؛ بينما UUID هو الاسم المستخدم في RFC 4122 وفي كل مكان آخر. الصيغة وضمانات التفرد متطابقة.

هل UUIDs مضمونة التفرد؟

ليست مضمونة رياضيًا - لكن احتمالية التعارض في UUID v4 تبلغ حوالي 1 في 2^122، وهي أقل بكثير من عتبة أي تطبيق عملي. بالنسبة لـ UUID v1 و v7، تمنع وحدات الطابع الزمني والعقدة/العشوائية التعارضات عمليًا.

هل ينبغي أن أستخدم UUID v4 أم UUID v7 للمفاتيح الأساسية لقواعد البيانات؟

UUID v7 أفضل بشكل عام للمفاتيح الأساسية. لأن وحداته الأولى عبارة عن طابع زمني Unix، فإن الصفوف الجديدة يتم إدراجها بالقرب من بعضها البعض على القرص، مما يُبقي الفهارس مضغوطة والكتابة سريعة. استخدم v4 فقط عندما يجب ألا يكون ترتيب الإدراج قابلًا للاستنتاج على الإطلاق.

هل أحتاج إلى مولّد UUID v1؟

نادرًا. يتضمن UUID v1 عنوان MAC للجهاز المولِّد (أو بديلًا عشوائيًا)، والذي يمكن أن يسرب معلومات. يوفر UUID v7 نفس خاصية القابلية للفرز الزمني دون هذا القلق وهو تقريبًا دائمًا الخيار الأفضل اليوم.

هل مولّد UUID هذا مجاني للاستخدام؟

نعم. يحدث كل التوليد في متصفحك، لا يوجد حد للاستخدام، ولا يلزم وجود حساب. يمكنك توليد UUIDs فردية هنا أو التبديل إلى مولّد الدفعات لما يصل إلى 500 في المرة الواحدة.

نحن بالكاد نستخدم ملفات تعريف الارتباط

نحن نستخدم فقط ملفات تعريف الارتباط الضرورية للغاية، التي تعزز أمان الموقع وتحسن تجربة المستخدم. نحن لا نتتبع أنشطتك أو تصرفاتك.