أي إصدار من UUID يجب أن أستخدم؟+−
لمعظم المعرّفات العامة، استخدم v4 - فهو عشوائي ولا يحمل أي معلومات. إذا كان UUID سيصبح مفتاحًا أساسيًا أو فهرسًا في قاعدة بيانات، فعادةً ما يكون v7 أفضل لأنه يُرتَّب زمنيًا، ما يُبقي الفهارس سريعة. استخدم v5 عندما تحتاج أن ينتج نفس المدخل (مثل رابط أو اسم) دائمًا نفس UUID؛ استخدم v1 فقط إذا احتجت تحديدًا إلى طابع زمني مضمّن في المعرّف، مع العلم أنه قد يكشف وقت الإنشاء.
ما الفرق بين v3 وv5؟+−
كلاهما حتمي: بنفس مساحة الاسم والاسم، ينتجان دائمًا نفس UUID. الفرق الوحيد هو دالة التجزئة - يستخدم v3 خوارزمية MD5، ويستخدم v5 خوارزمية SHA-1. ولأن MD5 مكسورة تشفيريًا، فإن v5 هو الخيار الموصى به لأي نظام جديد؛ بينما v3 موجود أساسًا للتوافق مع الأنظمة القديمة.
لماذا يُرتَّب v7 زمنيًا؟+−
يبدأ UUID من الإصدار v7 بطابع زمني بصيغة يونكس بالميلي ثانية من 48 بت قبل البتّات العشوائية، لذا عند مقارنة معرّفات UUID كسلاسل نصية بسيطة (أو بايتات)، يُرتَّب ما أُنشئ أولًا قبل ما أُنشئ لاحقًا. لا تملك معرّفات v4 العشوائية مثل هذا البناء، ما قد يُجزّئ فهارس قاعدة البيانات لأن القيم العشوائية الجديدة تُدرَج في كل مكان ضمن نطاق المفاتيح بدلًا من النهاية.
هل معرّفات UUID المُنشأة هنا عشوائية تشفيريًا؟+−
نعم. يستخدم v4 والأجزاء العشوائية من v1 وv7 دالة crypto.getRandomValues من واجهة Web Crypto API، وهي مولّد أرقام عشوائية آمن تشفيريًا ومدمج في متصفحك - وليس Math.random(). لا يُنشأ أي شيء على خادم ولا يُرسل إلى أي مكان.
ما مدى احتمال تصادم معرّفين UUID عشوائيين من الإصدار 4؟+−
احتمال ضئيل جدًا يقارب المستحيل. يحتوي UUID من الإصدار 4 على 122 بت عشوائي (6 بتات ثابتة لتحديد الإصدار والمتغير)، مما يعطي حوالي 5.3 × 10^36 قيمة ممكنة. حتى لو تم توليد مليار UUID في الثانية لمدة 100 عام، ستظل احتمالية حدوث أي تصادم أقل من واحد في المليار - ولهذا السبب يُوثق بالإصدار 4 كمعرّف فريد دون الحاجة إلى سجل مركزي.
هل UUID هو نفسه GUID؟+−
عمليًا، نعم - GUID (المعرّف الفريد عالميًا) هو الاسم الذي تستخدمه Microsoft لنفس تنسيق المعرّف المكوّن من 128 بت الذي يحدده معيار UUID (RFC 4122). تكتبه بعض البيئات بأحرف كبيرة أو داخل أقواس معقوفة ({...})، لكن القيمة والبنية الأساسية متطابقتان، لذا فإن أي UUID يتم إنشاؤه هنا يُعد أيضًا GUID صالحًا.