مولّد UUID / GUID
أنشئ معرّفات UUID بالإصدار v1 أو v4 أو v5 — بشكل مجمّع ومنسّق مع بادئة/لاحقة اختيارية.
مرجع الإصدارات
v4 — عشوائي
تُنشأ معرّفات UUID من الإصدار v4 بالكامل من بايتات عشوائية (أو شبه عشوائية). 122 من أصل 128 بت عشوائية؛ أما الـ 6 بت المتبقية فترمّز الإصدار (4) والنوع. ولأنها لا تحمل أي معلومات منظّمة، فإن معرّفات v4 هي الخيار الأبسط: فهي لا تتطلّب حالة مشتركة، ولا ساعة شبكة، ولا تنسيق مساحة اسم. واحتمال إنشاء نسخة مكرّرة منخفض إلى حد فلكي. استخدم v4 كخيار افتراضي للمفاتيح الأساسية لقواعد البيانات، ورموز الجلسات، وأي سياق تكون فيه الفرادة مطلوبة لكن الترتيب الزمني ليس كذلك.
Wikipedia — UUID Version 4 (random)
v1 — قائم على الوقت
تتضمّن معرّفات UUID من الإصدار v1 طابعًا زمنيًا بطول 60 بت (بفواصل 100 نانوثانية منذ 15 أكتوبر 1582، تاريخ إصلاح التقويم الميلادي)، وتسلسل ساعة بطول 14 بت، ومعرّف عقدة بطول 48 بت (تاريخيًا عنوان MAC للجهاز المُنشئ). ولأن الطابع الزمني هو المكوّن الأكثر أهمية، فإن معرّفات v1 تُرتَّب زمنيًا عند مقارنتها معجميًا — وهي خاصية مفيدة للفهارس العنقودية لقواعد البيانات. والمقايضة هي الخصوصية: يكشف معرّف v1 عن عنوان MAC للجهاز ووقت الإنشاء الدقيق. تستبدل التطبيقات الحديثة عقدة عشوائية لتجنّب هذا الكشف.
Wikipedia — UUID Version 1 (time-based)
v5 — مساحة الاسم + الاسم (SHA-1)
معرّفات UUID من الإصدار v5 حتمية: إذا أُعطي نفس معرّف مساحة الاسم ونفس سلسلة الاسم، فإن المخرجات تكون متطابقة دائمًا. تدمج الخوارزمية بايتات مساحة الاسم والاسم المرمّز بـ UTF-8، وتجزّئها باستخدام SHA-1، ثم تطوي الملخّص البالغ 160 بت إلى 128 بت (مع ضبط بتات الإصدار على 5 والنوع وفق RFC 4122). هذا يجعل v5 مثاليًا لإنشاء معرّفات مستقرة وقابلة للتكرار — على سبيل المثال، ربط عنوان URL بمعرّف UUID لا يتغيّر أبدًا، أو تحويل مفتاح سلسلة قديم إلى UUID دون جدول بحث. يستخدم v3 خوارزمية MD5 بدلًا من ذلك؛ ويُفضَّل v5 لأن SHA-1 ينتج تصادمات أقل.