مولد معرّفات UUID v4

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

شكل
المعرفات التي تم إنشاؤها
جاهز. قم بتوليد معرّفات UUID v4 في متصفحك مباشرةً.

كيف يتم بناء هذا المعرّف

التخطيط والتركيبة
معرّف UUID بحجم 128 بت مع تحديد الإصدار 4 وبتات متغير RFC، ويظهر في مجموعات ست عشرية بتنسيق 8-4-4-4-12.
الإنتروبيا
122 بت من العشوائية يتم الحصول عليها عبر crypto.randomUUID().
الوقت
لا يوجد؛ لا تكشف معرّفات الإصدار الرابع (v4) عن وقت إنشائها.
احتمالية التصادم
تعتمد احتمالية التداخل على 122 بت من العشوائية، وهو ما يتجاوز بكثير الاحتياجات العملية للأنظمة الضخمة.
مثال
f9982a57-af29-4570-9684-f9a696429e36

يتم إنشاء معرفاتك محليًا باستخدام عشوائية قوية في المتصفح. لا يتم إرسال أي شيء إلى BroBroGo.

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

متى يجب عليّ استخدام UUID v4؟

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

هل يمكنني إزالة الشرطات أو جعل الحروف كبيرة في المخرج؟

نعم. تحتفظ أداة UUID v4 بلوحة الخيارات، مما يتيح لك تفعيل أو تعطيل الشرطات وتحويل الأحرف إلى أحرف كبيرة.

ما هو UUID v4 وكيف يعمل المولد؟

مُعرّف UUID v4 هو سلسلة عشوائية من 36 حرفاً بالنظام الست عشري (hexadecimal) موزعة بالشكل القياسي 8‑4‑4‑4‑12. المولد الموجود في هذه الصفحة ينتج نسخاً متعددة من UUID v4 بعدد يختاره المستخدم بين 1 و100، مع خيارين للتخصيص: جعل الحروف الهجائية (a–f) كبيرة (A–F) أو صغيرة، وإبقاء الواصلات أو حذفها.

يتكون UUID v4 من 128 بت في المجموع، لكن 6 بتات منها ثابتة: 4 بتات تحدد النوع الفرعي (variant) و2 بتات تحدد الإصدار (version) — وتحديداً الإصدار 4. أما البتات الـ 122 المتبقية فهي عشوائية بالكامل. هذا يعني أن كل UUID v4 هو في الواقع عدد عشوائي بطول 122 بت يُعرض في شكل نصي سهل القراءة.

يستخدم المولد العشوائية القوية المدمجة في المتصفح (مثل crypto.randomUUID أو ما يعادلها) لتوليد كل مُعرّف بشكل فوري محلياً. لا تُرسل أي بيانات إلى خادم خارجي، مما يحافظ على الخصوصية ويقلل زمن الانتظار إلى الصفر تقريباً.

تظهر النتائج فور تغيير أي خيار: سواء كان تغيير التنسيق (UUID v4 مقابل v7 أو ULID أو NanoID)، أو تغيير العدد، أو تفعيل/إلغاء تفعيل الحروف الكبيرة أو الواصلات. كل تفاعل يؤدي إلى إعادة توليد القائمة بأكملها.


الميزة الفريدة: 122 بت من العشوائية الخالصة وتأثيرها على الفهارس

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

لهذه الخاصية تأثير عملي مهم عند استخدام UUID v4 كمفتاح أساسي في قواعد البيانات التي تعتمد على فهارس من نوع B‑tree. لأن المعرفات تُدرج بترتيب عشوائي، تضطر قاعدة البيانات إلى إعادة تنظيم صفحات الفهرس باستمرار، مما يسبب تجزؤاً (fragmentation) يؤدي إلى انخفاض أداء الكتابة بشكل ملحوظ. على عكس UUID v7 مثلاً الذي يضم طابعاً زمنياً في بتاته العليا، مما يسمح بإدراج متسلسل يحافظ على فعالية الفهرس.

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


احتمالية التصادم ولماذا هي ضئيلة

لأن UUID v4 يستخدم 122 بت عشوائية، فإن احتمال إنتاج مُعرّف مكرر في أي عينة معقولة صغير جداً. وفقاً لمعادلة عيد الميلاد (birthday problem)، لحساب عدد المعرفات اللازمة لظهور أول تصادم، يمكن استخدام التقريب التالي:

n ≈ √(2 × 2¹²² × ln(2))

باستخدام ذلك، نحصل على قيمة تقدر بحوالي  10¹⁸ (مليار مليار) من المعرفات قبل أن يتجاوز احتمال التصادم 50%. عملياً، حتى في الأنظمة التي تولد مليارات المعرفات يومياً، يظل الخطر ضئيلاً للغاية.

المولد الموجود هنا يسمح بتوليد حتى 100 معرف في المرة الواحدة، لكن حتى لو استخدمت المولد مليون مرة كل يوم لسنوات، فهمت إلى حد بعيد لن تشهد أي تصادم. هذه الخاصية تجعل UUID v4 خياراً مثالياً للأنظمة الموزعة التي لا يمكنها التنسيق فيما بينها لتعيين معرفات فريدة — مثل أنظمة السجلات (event logs) الموزعة، أو رموز الجلسات (session tokens) في خدمة موزعة.

لكن تجدر الإشارة إلى أن UUID v4 ليس مقاوماً للتخمين بشكل مطلق. 122 بت من العشوائية معروفة علناً (حسب المواصفة RFC 4122)، لذا أي مهاجم لديه مثل هذه العشوائية يمكنه محاولة تخمينها. لكن لأغراض عملية مثل معرفات الطلبات (request IDs) أو مفاتيح الجلسات المؤقتة، تعتبر آمنة بما فيه الكفاية.


تخصيص التنسيق: الحروف الكبيرة والواصلات

يقدم المولد خيارين يتعلقان بتمثيل النص فقط، لكن لهما أثر على قابلية التشغيل البيني.

الحروف الكبيرة (Uppercase): عند تفعيل هذا الخيار، تُعرض الأحرف الهجائية a–f كأحرف كبيرة A–F. لا يغير ذلك من القيمة العددية للمُعرّف — UUIDs القياسي يستخدم الحروف الصغيرة وفق معيار RFC 4122 — لكن بعض الأنظمة أو الواجهات البرمجية تفضل التمثيل بالأحرف الكبيرة (مثلاً عندما تُستخدم المعرفات في مسارات URL حيث تكون الحروف الكبيرة مقبولة). الحذر الوحيد: بعض أنظمة قواعد البيانات تعامل المعرفات بشكل غير حساس لحالة الحروف (case-insensitive)، لكن ليس كلها. إذا كنت تخزن UUID v4 في قاعدة بيانات تفرق بين الحالة (مثل بعض تكوينات PostgreSQL مع collation محدد)، فمن الأفضل توحيد التنسيق إما إلى صغير أو كبير.

حذف الواصلات: عند إلغاء تفعيل "Include hyphens"، تُحذف الشرطات الأربع، فيصبح الطول 32 حرفاً (بدلاً من 36). هذا التنسيق المكثف مفيد عند استخدام المعرف في بيئات يكون فيها عدد الأحرف مقيداً — مثل مسارات URL، أو أسماء الملفات، أو حزم البيانات الثنائية. لكن تجدر الإشارة إلى أن UUID بدون واصلات ليس UUID قانونياً حسب RFC 4122، لذلك قد تُرفض قيمته من قبل مكتبات معينة. لذا إذا كنت تتعامل مع واجهات برمجية تتوقع التنسيق الكامل، فمن الأفضل إبقاء الواصلات.

المولد يعيد توليد القائمة فور تغيير أي من هذين الخيارين، مما يسمح بالمقارنة المباشرة بين التنسيقات المختلفة.


حالات الاستخدام الحقيقية: من المطورين إلى مهندسي الأمن

UUID v4 يخدم مجموعة متنوعة من المستخدمين:

  • مطورو التطبيقات الذين يحتاجون إلى توليد آلاف المعرفات الفريدة لكائنات الجلسات، أو الأحداث، أو السجلات. يساعد المولد في الحصول على دفعة كبيرة من المعرفات دفعة واحدة (حتى 100) لاختبار الأنظمة أو لملء قاعدة البيانات ببيانات تجريبية.
  • مصممو قواعد البيانات الذين يدركون تأثير العشوائية على الفهارس، لكنهم يختارون UUID v4 لأسباب تتعلق بالعمل دون اتصال (offline-first) أو التوزع الجغرافي. على سبيل المثال، في تطبيقات الهواتف المحمولة التي يجب أن تنشئ معرفات فريدة دون الاتصال بخادم مركزي، UUID v4 هو حل مثالي.
  • مهندسو الأمن الذين يحتاجون إلى معرفات غير قابلة للتخمين (Unguessable) لأنها تستخدم كرموز مصادقة أو مفاتيح واجهة برمجة (API keys). 122 بت من العشوائية توفر نطاقاً واسعاً من الاحتمالات يصعب معها التخمين.
  • مختبرو البرامج ومولدات البيانات الذين يملؤون قاعدة بيانات بنماذج اختبارية بواقعية عالية. يمكنهم توليد مئات المعرفات في ثوانٍ لاستخدامها في سجلات المعاملات أو سجلات المستخدمين المزيفة.

الخيارات الإضافية (حذف الواصلات وتغيير حالة الحروف) تسمح لكل فئة من هؤلاء بتخصيص المخرجات وفقاً لاحتياجاتهم الدقيقة دون الحاجة إلى تعديل يدوي بعد التوليد.


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

جميع عمليات التوليد تحدث داخل المتصفح باستخدام وظائف JavaScript المضمنة مثل crypto.getRandomValues أو crypto.randomUUID. لذلك لا تُرسل أي بيانات إلى الخادم أبداً. هذا يوفر عدة مزايا:

  • الخصوصية: لا يمكن لأي جهة خارجية (بما في ذلك مشغل الموقع) تتبع المعرفات التي تولدها.
  • السرعة: النتائج فورية لأنها تعتمد على واجهة برمجة المتصفح (Browser API) دون حاجة لانتظار طلب HTTP.
  • العمل دون اتصال: يمكن تشغيل المولد حتى مع انقطاع الإنترنت (بعد تحميل الصفحة أول مرة).

هذا النهج يختلف عن بعض الأدوات الأخرى التي تعتمد على مولدات من الخادم، حيث يكون زمن الاستجابة أطول وقد تتعرض البيانات للاعتراض أو التسجيل.

يتم تحديث الواجهة فور تغيير أي خيار: النقر على خيار الحروف الكبيرة يؤدي إلى إعادة حساب جميع المعرفات وعرضها بتلك الحالة مباشرة. عند النقر على أي معرف فردي، يُنسخ إلى الحافظة (clipboard) باستخدام Clipboard API. أما النقر على زر "نسخ الكل" فينسخ القائمة بأكملها، ويظهر مؤقتاً رسالة "Copied all!" للتأكيد.

عدد المعرفات المسموح به يتراوح بين 1 و100 شاملاً. أي محاولة إدخال قيمة خارج هذا النطاق يتم رفضها، ولا تظهر رسالة خطأ — المولد ببساطة لا يستجيب للقيم غير الصالحة.


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

س: لماذا يستخدم UUID v4 122 بت فقط من العشوائية بدلاً من 128 بت؟ ج: لأن المعيار RFC 4122 يحفظ 6 بتات ثابتة: 4 بتات لنوع الإصدار (الإصدار 4) و2 بتات لتحديد النوع الفرعي (variant). لذا يتبقى 122 بت عشوائية فقط.

س: كيف يمكن نسخ معرف واحد فقط؟ ج: ببساطة انقر على أي معرف في القائمة — يُنسخ إلى الحافظة فوراً دون الحاجة إلى تحديده أو نقر زر خاص. يظهر إشعار قصير "Copied" للتأكيد.

س: ماذا يحدث إذا حاولت إدخال عدد أكبر من 100؟ ج: المولد لا يقبل إلا الأعداد بين 1 و100 شاملاً. أي قيمة خارج هذا النطاق يتم تجاهلها، وتبقى القيمة السابقة كما هي. ليس هناك حد أقصى صارم في المتصفح، لكن اختيار هذا الحد يمنع إغراق النظام بعدد كبير جداً من المعرفات غير الضرورية.

س: ما الفرق بين UUID v4 وUUID v7؟ ج: UUID v7 يتضمن طابعاً زمنياً (timestamp) في البتات العليا، مما يسمح بترتيب متسلسل مفيد لقواعد البيانات ذات الفهارس. UUID v4 عشوائي بالكامل. كلا النوعين لهما نفس الطول 36 حرفاً (بما في ذلك الواصلات).

س: هل يمكن استخدام UUID v4 بدون واصلات في عناوين URL بأمان؟ ج: نعم، UUID بدون واصلات (32 حرفاً) مقبول في معظم الأنظمة لأنه لا يحتوي على أحرف خاصة. لكن تأكد من أن النظام المستقبل لا يتوقع الواصلات — بعض مكتبات UUID تتحقق من وجودها وترفض القيمة إذا كانت مفقودة.

س: لماذا لا تظهر حالة "Ready." أو "Generated." في بعض الأحيان؟ ج: الحالة "Ready." تظهر عند بداية تحميل الصفحة أو بعد تعديل أي خيار، بينما "Generated." تؤكد أن التوليد قد تم بنجاح. عند نسخ الكل تظهر "Copied all!" لفترة قصيرة، ثم تعود إلى الحالة السابقة. لا يوجد خطأ حقيقي — فقط تفاعل طبيعي مع خيارات المستخدم.