← جميع الأدوات

مولّد UUID (v4 GUID)

أنشئ معرّفات UUID (GUID) عشوائية من النسخة v4 فوراً في متصفحك. تعرّف على معنى UUID بطول 128 بت، الفروق بين الإصدارات، احتمال التصادم، ومتى تستخدمه.

ما هو UUID في الواقع

المعرّف UUID، اختصاراً للمعرّف الفريد عالمياً (Universally Unique Identifier)، هو قيمة بطول 128 بت تُستخدَم لتسمية شيء ما دون استئذان أحد أولاً. قد تراه يُسمّى أيضاً GUID، أو المعرّف الفريد عالمياً (Globally Unique Identifier)، وهو ببساطة الاسم الذي أطلقته مايكروسوفت على الفكرة نفسها داخل ويندوز وعالم ‎.NET. يصف المصطلحان الرقم نفسه بطول 128 بت في كل حالة تقريباً تهمّ، لذا حين يقول زميل GUID وتقول أنت UUID، فأنتما في الغالب الأعمّ تتحدّثان عن الشيء ذاته بالضبط.

تُكتب هذه الـ128 بت عادةً على هيئة 32 رقماً ست عشرياً مقسّمة إلى خمس مجموعات بشُرَط (واصلات)، بنمط 8-4-4-4-12. تبدو القيمة النموذجية هكذا 123e4567-e89b-12d3-a456-426614174000. الشُرَط لا تحمل معنى بذاتها؛ وُجِدت فقط ليتمكّن الإنسان من قراءة القيمة دون أن يفقد موضعه. كل حرف هو رقم ست عشري من 0 إلى f، ولهذا يبدو UUID أكثف من رقم يومي عادي رغم أنه، تحت السطح، مجرد عدد صحيح واحد ضخم جداً.

رمز ست عشري مجرّد متوهّج يمثّل معرّفاً فريداً بطول 128 بت على خلفية نيلية داكنة
المعرّف UUID هو رقم واحد بطول 128 بت، مكتوب بـ32 رقماً ست عشرياً في خمس مجموعات مفصولة بشُرَط.

الإصدارات، ولماذا يفوز الإصدار v4

يحدّد المعيار عدة إصدارات، وتختلف في كيفية ملء البتات. الإصدار 1 معتمِد على الوقت: يَنسج معاً الطابع الزمني الحالي وعنوان MAC الشبكي للجهاز. هذا يجعل قيم v1 قابلة للفرز حسب وقت الإنشاء، لكنه يسرّب أيضاً معلومات عن مكان إنشائها وزمنه تقريباً، وهو أمر ليس مرحَّباً به دائماً. الإصداران 3 و5 معتمِدان على الاسم، يجزّئان (hash) مساحة اسم زائد اسماً بحيث يُنتج المدخل نفسه دائماً المعرّف نفسه.

يسلك الإصدار 4 مساراً مختلفاً تماماً. إنه عشوائية شبه خالصة. من الـ128 بت، ستة محجوزة لتمييز الإصدار والنوع (variant)، تاركةً 122 بت لتُملأ ببيانات عشوائية. لا طابع زمني، ولا عنوان MAC، ولا مساحة اسم، مجرد ضجيج. ولهذا تحديداً تنتج معظم المولّدات، بما فيها هذا، v4 افتراضياً. فهو لا يكشف شيئاً عن الجهاز أو لحظة الإنشاء، ولا يحتاج إلى تنسيق بين الأطراف التي تصنعه. تعمل الأداة في هذه الصفحة بالكامل في متصفحك، لذا فإن القيم العشوائية لا تغادر جهازك أبداً.

كم هو غير محتمل التصادم فعلاً

القلق المعقول هو أن معرّفَي UUID عشوائيين قد يكونان يوماً متطابقين. مع 122 بت عشوائي، فإن مساحة قيم v4 الممكنة هي 2 مرفوعة للأس 122، أي ما يقارب 5.3 يتبعها 36 صفراً. ولوضع ذلك في إطار بشري، ستحتاج إلى توليد مليارات معرّفات UUID كل ثانية على مدى عقود عديدة قبل أن ترتفع احتمالات تكرار واحد إلى أي قيمة يمكنك قياسها. يصف المعيار نفسه فرصة التصادم بأنها قريبة من الصفر إلى حدّ يُهمَل معه. عملياً تعامل الفرق الإصدار v4 على أنه فريد وتمضي قدماً، وهي محقّة في ذلك.

مفاتيح متوهّجة لا تُحصى ومتمايزة تطفو في فضاء داكن شاسع بلا تكرار، بلمسات سماوية وذهبية
تجمّع قيم v4 الممكنة شاسع إلى حدّ يجعل التصادمات مستحيلة عملياً.

أين يلجأ إليها المطوّرون

لأن التفرّد لا يحتاج إلى سلطة مركزية، تتألّق معرّفات UUID في الأماكن التي يكون فيها التنسيق مكلفاً أو مستحيلاً. هي ملاءمة طبيعية لمفاتيح قواعد البيانات الأساسية، خصوصاً حين تُدرِج عدة خدمات صفوفاً ولا يمكنك التوقّف لتسأل عدّاداً مشتركاً عن الرقم التالي. في الأنظمة الموزّعة، يمكن لعقدتين على طرفَي الكوكب أن تسكّا معرّفات في اللحظة نفسها دون أن تتصادما قطّ. كما تشغّل مفاتيح خمول واجهات البرمجة (idempotency keys)، حيث يرفق العميل معرّف UUID بطلب ما ليتمكّن الخادم من تجاهل التكرار بأمان إذا أعادت الشبكة المحاولة. رموز الجلسات وأسماء الملفات ومعرّفات الأحداث ومفاتيح الرسائل تعتمد جميعها على الخاصية نفسها.

المعرّف UUID مقابل معرّفات الزيادة التلقائية

البديل الكلاسيكي هو العدد الصحيح ذو الزيادة التلقائية: 1، 2، 3، وهكذا. المعرّفات التسلسلية مدمجة، وتُفرَز طبيعياً، وسهلة القراءة، لكن لها مساوئ حقيقية. تكشف عدد السجلات الموجودة وتتيح للغرباء تخمين القيم المجاورة، وتُجبِر كل إدراج على المرور عبر عدّاد واحد، ما يصبح عنق زجاجة حين تجزّئ قاعدة بيانات (sharding) أو تدمج بيانات من مصادر عديدة. تحلّ معرّفات UUID هذه المشكلات بالسماح لأي طرف بتوليد مفتاح مستقلاً وبعدم البوح بأي شيء عن الحجم أو الترتيب. المقايضة هي الحجم وقليل من تراجع المحلّية في الفهارس. أما للأنظمة التي تتوسّع أفقياً أو التي يجب أن تخفي أحشاءها، فهذه المقايضة عادةً تستحق العناء. يمكنك استكشاف هذه الأداة وأمثالها عبر مجموعة كل المولّدات لدينا، أو تصفّح المجموعة الأوسع من أدوات المطوّرين للّبنات ذات الصلة.

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

هل المعرّف GUID هو نفسه UUID؟

للأغراض اليومية، نعم. GUID هو اسم مايكروسوفت للمعرّف نفسه بطول 128 بت. الفارق الحقيقي الوحيد هو ترتيب البايتات في الصيغة الثنائية الخام على بعض أنظمة ويندوز؛ أما في الصيغة النصية فهما متطابقان وقابلان للتبادل.

أي إصدار من UUID تولّده هذه الأداة؟

تولّد الإصدار 4، النوع العشوائي. من بتاته الـ128، تُملأ 122 ببيانات عشوائية، ما يجعل تكرار كل قيمة بالغ الندرة ويعني أنه لا يحمل طابعاً زمنياً ولا معلومات عن الجهاز.

هل يمكن أن يكون معرّفان UUID متطابقين على الإطلاق؟

نظرياً الاحتمال ليس صفراً تماماً، لكن مع نحو 5.3 مضروبة في 10 للأس 36 قيمة v4 ممكنة، فهو صغير إلى حدّ يُعامَل معه على أنه مهمَل. ستحتاج إلى توليد أعداد فلكية منها قبل أن يصبح التصادم محتملاً.

لماذا أستخدم UUID بدلاً من رقم بزيادة تلقائية؟

يمكن إنشاء معرّفات UUID مستقلاً عبر أي خدمة دون عدّاد مشترك، وهي لا تكشف عدد السجلات أو ترتيبها، وتجعل دمج البيانات من مصادر عديدة سلساً. معرّفات الزيادة التلقائية أصغر لكنها تصبح عنق زجاجة وتسرّب معلومات عند التوسّع.

هل تُولَّد معرّفات UUID على خادم؟

لا. تعمل هذه الأداة بالكامل في متصفحك، فتُنتَج القيم العشوائية محلياً ولا تُرسَل إلى أي مكان أبداً. هذا يجعل استخدامها آمناً للمفاتيح والرموز التي تنوي إبقاءها خاصة.

ماذا يعني نمط الشُرَط؟

تجميع 8-4-4-4-12 مجرد اصطلاح لتسهيل القراءة. الشُرَط لا تحمل بيانات؛ فهي تقسّم الأرقام الست عشرية الـ32 إلى أجزاء ليتمكّن الناس من مسح القيم ومقارنتها بسهولة أكبر.