تخطَّ إلى المحتوى

مولّد UUID

ولِّد معرّفات UUID عشوائية من الإصدار 4، وتُسمى أيضًا GUID، واحدًا تلو الآخر أو حتى 100 دفعة واحدة. تأتي من مولّد متصفحك الآمن تشفيريًا، ويمكنك التحويل إلى أحرف كبيرة أو حذف الواصلات قبل نسخ معرّف واحد أو الكل. مجاني ودون تسجيل، ولا يُرسل أي شيء إلى خادم.

كيفية استخدام مولّد UUID

  1. 1. اختر العدد. أي عدد صحيح من 1 إلى 100، والافتراضي هو 5.
  2. 2. اضغط توليد. تظهر قائمة جديدة في كل مرة. لا يُولَّد شيء قبل أن تضغط الزر.
  3. 3. اختر الصيغة. أحرف كبيرة وبلا واصلات يعيدان تنسيق القائمة الموجودة، ولا يولّدان قيمًا جديدة.
  4. 4. انسخ. لكل صف زر نسخ خاص به، ونسخ الكل ينسخ القائمة كاملة، معرّفًا في كل سطر.

تشريح UUID الإصدار 4

UUID معرّف من 128 بتة يُكتب كـ32 رقمًا سداسي عشري في خمس مجموعات مفصولة بواصلات — 8-4-4-4-12 — أي 36 حرفًا. يُعرَّف التنسيق في RFC 9562 (2024)، الذي حلّ محل RFC 4122. يملأ الإصدار 4 معظم البتات ببيانات عشوائية، ولا تبقى ثابتة سوى ست بتات:

الجزءموضعهالقيمة
الإصدارأول رقم في المجموعة الثالثةدائمًا 4
المتغيّرأول رقم في المجموعة الرابعةواحد من 8 أو 9 أو a أو b
البتات العشوائيةكل ما عدا ذلك122 بتة

مثال، كما تنتجه العشوائية في الأداة: e1f22e6e-ea3f-42a7-b43d-164b51542675. تبدأ المجموعة الثالثة بالرقم 4 والرابعة بالحرف b، كما يجب أن تفعل كل معرّفات v4. ستختلف معرّفاتك، وهذا هو المقصود.

هل سيتطابق معرّفان من UUID يومًا؟

مع 122 بتة عشوائية توجد 2122 قيمة محتملة، أي نحو 5.3 × 1036. وفق حدّ عيد الميلاد (birthday bound)، ستحتاج إلى نحو 2.7 × 1018 معرّف UUID لتصل إلى احتمال 50% أن يتطابق أي زوج منها. مع توليد مليار معرّف في الثانية، يستغرق ذلك نحو 86 عامًا. وللتطبيقات العادية — مفاتيح قواعد البيانات ومعرّفات الطلبات وأسماء الملفات — لا تُعد التصادمات مصدر قلق عمليًا، شريطة أن يكون مصدر العشوائية جيدًا. تستخدم هذه الأداة المولّد التشفيري في المتصفح (crypto.randomUUID، مع الرجوع إلى crypto.getRandomValues)، لا Math.random.

أي إصدار من UUID تحتاج؟

الإصدارمبني منالاستخدام المعتاد
1وقت الساعة (غريغوري) ومعرّف عقدةالأنظمة القديمة؛ قد يكشف متى ومن أين أُنشئ
3 و5تجزئة (MD5 أو SHA-1) لمساحة أسماء واسممعرّفات ثابتة مشتقة من اسم
4بتات عشوائيةمعرّفات فريدة عامة الغرض — ما تنتجه هذه الأداة
7طابع زمني Unix بالميلي ثانية، ثم بتات عشوائيةمفاتيح قواعد بيانات تُرتَّب حسب وقت الإنشاء

يذكر RFC 9562 أن عشوائية الإصدار 4 تعطي موضعًا ضعيفًا في فهارس قواعد البيانات، ويوصي بالإصدار 7 بدلًا من 1 و6 للمعرّفات المعتمدة على الزمن. فإذا كان جدولك كبيرًا وكثيرة الإدراجات، فقد يناسبه الإصدار 7 المرتَّب زمنيًا أكثر من الإصدار 4. تُولّد هذه الصفحة الإصدار 4 فقط. ويقول RFC أيضًا إن على قواعد البيانات تخزين UUID كقيمة ثنائية من 16 بايتًا حيثما أمكن، لأن النص يأخذ 36 حرفًا.

الصيغ: الواصلات والحالة وGUID

يسمح RFC 9562 بأرقام سداسية عشرية بأحرف كبيرة أو صغيرة أو مختلطة، والمعرّف نفسه بأي حالة يبقى المعرّف ذاته. يحمل الشكل القياسي واصلات؛ أما الشكل المكوَّن من 32 رقمًا بلا واصلات فهو تنويع شائع تقبله قواعد بيانات وواجهات برمجة كثيرة، لكن تحقق من نظامك قبل استخدامه. وGUID هو الاسم الذي تستخدمه Microsoft للمعرّف 128 بتة نفسه، لذا يعمل UUID الإصدار 4 من هذه الصفحة حيثما يُتوقع GUID.

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

ما هو UUID الإصدار 4؟
معرّف فريد عالميًا من 128 بتة، منها 122 بتة عشوائية، وست بتات تحدد الإصدار (4) والمتغيّر. يُكتب هكذا: 550e8400-e29b-41d4-a716-446655440000.
هل يمكن أن يتطابق معرّفا UUID مُولَّدان؟
نظريًا نعم، عمليًا لا. توجد نحو 5.3 × 1036 قيمة محتملة، ويحتاج احتمال 50% لأي تصادم إلى نحو 2.7 × 1018 معرّف، أي نحو 86 عامًا بمعدل مليار في الثانية.
هل العشوائية آمنة تشفيريًا؟
نعم. تستدعي الأداة crypto.randomUUID في المتصفح، أو crypto.getRandomValues حيث يكون الأول غير متاح، وكلاهما يستخدم مولّد أرقام عشوائية آمنًا تشفيريًا، لا Math.random.
هل تُولَّد معرّفات UUID على خادم؟
لا. تُنشأ في متصفحك، ولا تُرسل إلى أي مكان ولا تُخزَّن. والتوليد من جديد يعطيك قائمة جديدة تمامًا.
هل UUID هو نفسه GUID؟
نعم. GUID هو مصطلح Microsoft للمعرّف 128 بتة نفسه. يمكن استخدام UUID الإصدار 4 كـGUID دون تغيير، وتعرض أدوات Windows أحيانًا GUID بأحرف كبيرة أو بين أقواس مجعدة {}.
ماذا يفعل خيارا الأحرف الكبيرة وبلا واصلات؟
يغيّران طريقة كتابة كل قيمة فقط. الأحرف الكبيرة تحوّل الحروف السداسية إلى أحرف كبيرة، وRFC 9562 يعاملها كالمعرّف نفسه. أما «بلا واصلات» فيزيل الشرطات ليعطي 32 حرفًا؛ استخدمه فقط حيث يتوقع النظام المستقبِل هذا الشكل.
هل يمكن استخدام UUID كسر أو كلمة مرور؟
لا. صُمّم UUID ليكون فريدًا لا سريًا. وينص RFC 9562 على ألا تفترض التطبيقات أن UUID يصعب تخمينه، وعلى عدم استخدامه كقدرة أمنية. استخدم مولّد كلمات المرور للأسرار.

أدوات ذات صلة

المزيد في البيانات ولغات الترميز والبرمجة