مولّد UUID
ولّد UUID من الإصدارات 4 و7 و1 و3 و5 — واحدًا أو ألفًا دفعة واحدة — وافحص أي UUID.
مولّد UUID — إنشاء معرّفات v4 وv7 وv5 وv1 أونلاين
المعرّف UUID رقم من 128 بت يمكن لنظامين إنشاؤه كلٌّ على حدة مع اطمئنان تام إلى عدم التكرار. يولّد هذا المولّد المجاني النسخة الرابعة (عشوائية) والسابعة (مرتّبة زمنيًا) والأولى (ختم زمني ومعرّف عقدة) والنسختين الثالثة والخامسة (مشتقّتين من اسم)، واحدًا تلو الآخر أو حتى ألفًا دفعة واحدة، في أسطر أو مصفوفة JSON أو CSV أو قيم SQL. والصق أي معرّف في أداة الفحص ليخبرك بنسخته ونمطه، ويفكّ الختم الزمني الذي تحمله النسختان الأولى والسابعة.
تُسمّى الـ UUID أيضًا GUID، خصوصًا في بيئة مايكروسوفت. والمصطلحان يشيران إلى السلسلة نفسها المكوّنة من 36 محرفًا: 32 رقمًا ست عشريًا موزّعة على خمس مجموعات تفصلها شرطات، مثل f47ac10b-58cc-4372-a567-0e02b2c3d479.
لماذا نستخدم UUID بدل المعرّف التسلسلي
المعرّف التسلسلي في قاعدة البيانات يجب أن تمنحه جهة واحدة، ما يعني أن العميل لا يعرف معرّف السجل حتى يردّ الخادم. الـ UUID يزيل هذا الاعتماد: يستطيع تطبيق الجوال إنشاء سجلات دون اتصال، ويستطيع عامل الطابور الإشارة إلى صف قبل كتابته، ويمكن دمج مركزَي بيانات دون إعادة ترقيم. كما تسرّب المعرّفات التسلسلية معلومات: العنوان /invoice/1042 يخبر منافسك تقريبًا بعدد فواتيرك، بينما لا يقول الـ UUID شيئًا.
نسخ UUID التي ستصادفها
| النسخة | طريقة البناء | الاستخدام المعتاد |
|---|---|---|
| v1 | ختم زمني مع معرّف عقدة | أنظمة قديمة؛ والعقدة هنا بايتات عشوائية وليست عنوان MAC الخاص بك |
| v3 / v5 | بصمة MD5 أو SHA-1 لمساحة اسم مع اسم | معرّفات حتمية: المساحة والاسم نفسهما يعطيان دائمًا المعرّف نفسه |
| v4 | 122 بت عشوائية | الخيار الافتراضي حين تحتاج ببساطة إلى قيمة فريدة |
| v7 | ختم زمني يونكس بطول 48 بت مع عشوائية | مفاتيح قواعد البيانات: يترتّب بزمن الإنشاء فيبقى الفهرس مرتّبًا |
طريقة التوليد والتحقق هنا
- اختر النسخة: v4 للاستخدام العام، وv7 لمفاتيح قواعد البيانات، وv5 أو v3 للاشتقاق من اسم، وv1 للصيغ القديمة.
- حدّد العدد، من واحد إلى ألف.
- اختر شكل الإخراج: سطرًا لكل معرّف، أو مصفوفة JSON، أو CSV، أو قيم SQL جاهزة لأمر INSERT.
- علّم الأحرف الكبيرة أو بلا شرطات أو الأقواس المعقوفة أو البادئة
urn:uuid:إن كان النظام الهدف يطلبها، ثم اضغط نسخ أو تنزيل. - الصق أي معرّف في فحص UUID للتأكد منه وقراءة ما يحمله.
أي نسخة تختار
اختر v4 ما لم يكن لديك سبب لغير ذلك: عشوائية بالكامل، لا تحمل بيانات وصفية، وهي الافتراضي في معظم المكتبات. واختر v7 حين يصير المعرّف مفتاحًا رئيسيًا في جدول كثير الحركة: يأتي الختم الزمني بالمللي ثانية أولًا، فتستقر الصفوف الجديدة في نهاية الفهرس بدل تشتّتها فيه، وتترتّب القيم زمنيًا حتى كنصوص عادية. واختر v5 حين يجب أن يعطي المدخل نفسه المعرّف نفسه دائمًا، كمعرّف ثابت مشتقّ من رابط أو اسم عميل؛ أما v3 فهي الصيغة الأقدم بخوارزمية MD5 ولا تُستخدم إلا للتوافق. وv1 غرضها الأساسي قراءة البيانات القديمة: تحمل زمن الإنشاء، وتقليديًا عنوان MAC للجهاز.
الدفعات هنا متزايدة بانتظام: ولّد ألف معرّف v7 بنقرة واحدة وستبقى مرتّبة بترتيب إنشائها، لأن البتات الاثنتي عشرة التالية لحقل النسخة تحمل عدّادًا لا ضجيجًا عشوائيًا. كما يضم المنوّع المعرّف الصفري - كله أصفار - لأنه العلامة المتعارف عليها لغياب القيمة.
ماذا تخبرك أداة الفحص
الصق أي معرّف في لوحة فحص UUID، بشرطات أو بدونها، وبأقواس معقوفة أو ببادئة urn:uuid:. تؤكد الأداة الصيغة وتسمّي النسخة والنمط وتعرض الشكل القياسي والهيكس الخام. ومع قيمة من النسخة الأولى أو السابعة تفكّ الختم الزمني إلى تاريخ UTC مقروء، وهي غالبًا أسرع طريقة لمعرفة وقت إنشاء السجل. ومع النسخة الأولى تعرض أيضًا بايتات العقدة وتوضّح إن كان بت البث المتعدد يصنّفها عشوائية أم عنوان MAC حقيقيًا. وتُوسَم القيمة السليمة بـUUID صالح، وتضيف كل نسخة سطرًا خاصًا بها: قابل للترتيب للنسخة السابعة، والإنتروبيا للنسخة الرابعة (122 بتًا عشوائيًا ولا شيء غيرها)، ومشتقّ من للنسختين الثالثة والخامسة، لأن مساحة الأسماء نفسها مع الاسم نفسه تعطي دائمًا المعرّف نفسه. أما إذا ظهر النمط NCS أو محجوز للمستقبل فذلك يعني عادةً أن القيمة لم تُولَّد أصلًا بوصفها UUID قياسيًا، رغم أن شكلها صحيح.
أين تُستخدم الـ UUID يوميًا
- المفاتيح الأساسية في قواعد البيانات الموزّعة والأنظمة التي تتزامن بين الأجهزة.
- معرّفات الربط والطلب التي تتبع استدعاءً واحدًا عبر عدة خدمات مصغّرة وملفات سجل.
- مفاتيح عدم التكرار التي تتيح إعادة محاولة دفعة أو استدعاء API بأمان دون تنفيذ مزدوج.
- أسماء ملفات الرفع، ليتمكن مستخدمان من رفع
photo.jpgدون أن يطمس أحدهما الآخر. - معرّفات الجلسة والجهاز والتثبيت في تطبيقات الجوال وسطح المكتب.
- معرّفات الرسائل والأحداث في الطوابير وWebhooks والأنظمة القائمة على الأحداث.
هل يمكن أن يتطابق معرّفان
نظريًا نعم، وعمليًا لا. يحتوي معرّف النسخة الرابعة على 122 بت عشوائية، أي نحو 5.3 × 10 أس 36 قيمة ممكنة. ستحتاج إلى توليد مليارات المعرّفات كل ثانية طوال قرن قبل أن يصبح التصادم محتملًا، وهو بعيد تمامًا عمّا يفعله أي تطبيق. الخطر الحقيقي ليس رياضيًا بل استخدام مصدر عشوائية ضعيف. تستخدم هذه الأداة crypto.getRandomValues، مولّد المتصفح الآمن تشفيريًا، لا Math.random.
ملاحظات عملية قبل اعتماد الـ UUID
- التخزين: 16 بايت بصيغة ثنائية و36 محرفًا كنص. استخدم نوع UUID الأصلي أو BINARY(16) بدل VARCHAR حيثما أمكن.
- الفهرسة: قيم v4 العشوائية تتبعثر في شجرة B وقد تجزّئ الجداول الكبيرة. فكّر في v7 أو مفتاح تسلسلي إضافي للجداول كثيفة الكتابة.
- حالة الأحرف: العرف أن تُكتب صغيرة، لكن المقارنة يجب ألا تفرّق بين الكبيرة والصغيرة لأن بعض الأنظمة تعيدها كبيرة.
- الأقواس: أدوات ويندوز تحيط الـ GUID بـ
{...}غالبًا. احذفها قبل التخزين. - الروابط: الـ UUID آمن للروابط كما هو ولا يحتاج ترميزًا بالنسبة المئوية.
يُولَّد داخل متصفحك
تُنشأ كل قيمة محليًا ولا تُرسل إلى أي مكان، فتبقى المعرّفات التي تولّدها لأنظمتك الداخلية خاصة بك وحدك.
توليد UUID في الكود: JavaScript وPython وJava وC# وSQL وسطر الأوامر
عندما تحتاج المعرّفات داخل برنامج لا من صفحة ويب، فكل منصة شائعة توفّر مولّدًا. الاستدعاءات أدناه تنتج UUID عشوائيًا من الإصدار 4 ما لم يُذكر خلاف ذلك.
| المنصة | سطر واحد |
|---|---|
| JavaScript / Node.js | crypto.randomUUID() |
| Python | import uuid; uuid.uuid4() |
| Java | UUID.randomUUID() |
| C# / .NET | Guid.NewGuid()، أو Guid.CreateVersion7() في .NET 9 للإصدار 7 |
| PostgreSQL | gen_random_uuid()، أو uuidv7() بدءًا من PostgreSQL 18 |
| MySQL | UUID() - انتبه: يعيد إصدارًا 1 مبنيًا على الوقت |
| سطر أوامر Linux / macOS | uuidgen |
| PowerShell | [guid]::NewGuid() |
تبحث عن UUID لـ Minecraft؟ تلك تخصّصها Mojang لكل حساب ويُبحث عنها باسم اللاعب ولا تُولَّد - هذه الأداة تنشئ معرّفات عشوائية جديدة لأنظمتك أنت.
أدوات ذات صلة
المعرّفات تأتي مع قيم أخرى عادةً. أنشئ أسرارًا عبر مولّد كلمات المرور، واحسب بصمات عبر مولّد التجزئة، واقرأ حقل الموضوع في رمز عبر فاكّ ترميز JWT، وافحص الأوقات عبر محوّل الطابع الزمني.