مولد UUID
أنشئ معرّفات UUID عشوائية من الإصدار 4، من معرّف واحد إلى مئة في كل مرة، وانسخها كقائمة. تُولَّد هذه المعرّفات بمولد الأرقام العشوائية الآمن تشفيريًا في متصفحك، وتعرض لك أداة التحقق إصدار أي UUID تلصقه ونوعه (variant).
0 حرف · 0 كلمة · 0 سطر
تعمل الأداة بالكامل داخل تبويب المتصفح هذا. لا يتم رفع نصك ولا حفظه.
إصدارات UUID
الإصدار هو أول رقم في المجموعة الثالثة؛ أما النوع فيُرمَّز في أول رقم من المجموعة الرابعة (8 أو 9 أو a أو b لمعرّفات RFC). الأمثلة هي متجهات الاختبار من RFC 9562.
| الإصدار | مبني على | مثال |
|---|---|---|
| v1 | طابع زمني ميلادي + معرّف العقدة (MAC) | c232ab00-9414-11ec-b3c8-9f6bdeced846 |
| v3 | تجزئة MD5 لمساحة اسم + اسم | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v4 | 122 بتًا عشوائيًا | 919108f7-52d1-4320-9bac-f847db4148a8 |
| v5 | تجزئة SHA-1 لمساحة اسم + اسم | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| v6 | الطابع الزمني لـ v1 معاد ترتيبه لتُرتَّب المعرّفات حسب الزمن | 1ec9414c-232a-6b00-b3c8-9f6bdeced846 |
| v7 | ميلي ثانية Unix + بتات عشوائية، قابل للترتيب | 017f22e2-79b0-7cc3-98c4-dc0c0c07398f |
| v8 | تخطيط مخصص يحدده التطبيق | 2489e9ad-2ee2-8e00-8ec9-32d5f69181c0 |
ما هو UUID وكيف تقرؤه
المعرّف UUID (المعرّف الفريد العالمي، ويسمى GUID في برامج Microsoft) هو رقم من 128 بت يُكتب على شكل 32 رقمًا سداسيًا عشريًا في مجموعات بنمط 8-4-4-4-12، مثل f47ac10b-58cc-4372-a567-0e02b2c3d479. جرى توحيده في RFC 4122 عام 2005، وفي مايو 2024 حلّت محله الوثيقة RFC 9562 التي تُبقي على الإصدارات القديمة وتضيف ثلاثة إصدارات جديدة. هناك موضعان ثابتان: أول رقم في المجموعة الثالثة هو الإصدار (الرقم 4 في 4372)، وأول رقم في المجموعة الرابعة يدل على النوع (variant)، وهو 8 أو 9 أو a أو b في كل UUID يتبع المعيار.
يملأ الإصدار 4 البتات الـ 122 الأخرى ببيانات عشوائية. هذا الفضاء كبير جدًا إلى حد أنك تحتاج إلى توليد نحو 2.7 كوينتيليون (2.7 × 10¹⁸) معرّف للحصول على احتمال 50% لتكرار واحد، ولهذا تنشئ الأنظمة معرّفات v4 بصورة مستقلة على أجهزة كثيرة دون تنسيق بينها. تستخدم هذه الصفحة crypto.randomUUID، أو crypto.getRandomValues إن لم تتوفر، ولا تستخدم Math.random أبدًا لأن مخرجاتها غير مصممة لتكون غير قابلة للتنبؤ. الخياران أحرف كبيرة وبدون شرطات يغيّران الشكل فقط؛ أما القيمة فهي نفسها، ومعظم المحللات تقبل الحالتين.
الإصدار v4 والإصدار v7 والإصدارات الأخرى
تُبنى الإصدارات 1 و6 من طابع زمني ومعرّف عقدة، وكان في الأصل عنوان MAC للحاسوب، مما يكشف مكان إنشاء المعرّف ووقته. أما الإصداران 3 و5 فيُجريان تجزئة لمساحة اسم واسم باستخدام MD5 أو SHA-1، فيعطي المدخل نفسه UUID نفسه دائمًا. والإصدار 8 تخطيط حر للمخططات المخصصة. وأهم الوافدين الجدد هو الإصدار 7: يبدأ بطابع زمني Unix من 48 بت بالميلي ثانية ويملأ الباقي ببتات عشوائية، فتُرتَّب المعرّفات بحسب وقت الإنشاء.
هذا الترتيب هو سبب التفكير في v7 للمفاتيح الأساسية في قواعد البيانات. مفاتيح v4 العشوائية تتوزع في أنحاء فهرس B-tree فتُقسّم الصفحات وتضر بتوضع الذاكرة المؤقتة مع نمو الجدول، بينما تصل مفاتيح v7 بترتيب متزايد تقريبًا مثل عمود الترقيم التلقائي، ومع ذلك يمكن توليدها دون عدّاد مركزي. اختر v4 حين تريد معرّفًا لا يكشف شيئًا، ومنه وقت إنشائه؛ واختر v7 حين يهمك أداء الإدراج والترتيب الزمني. المعرّف UUID مجرد معرّف وليس سرًا: لكلمات المرور ومفاتيح API السرية استخدم مولد كلمات المرور. المزيد من أدوات الترميز والفحص في أدوات المطورين.
الأسئلة الشائعة
- هل يمكن أن يتطابق معرّفا UUID مولَّدان عشوائيًا؟
- نظريًا نعم، وعمليًا لا. مع 122 بتًا عشوائيًا، حتى لو ولّدت مليار UUID من v4 كل ثانية لمدة 86 عامًا تقريبًا فلن يتجاوز احتمال حدوث تصادم واحد نحو 50%، بشرط أن يكون مصدر العشوائية سليمًا.
- ما الفرق بين UUID و GUID؟
- لا فرق يُذكر. GUID هو اسم Microsoft للمعرّف نفسه ذي 128 بت. تعرض بعض أدوات Microsoft المعرّفات بأحرف كبيرة أو بين أقواس معقوصة، وتقبل أداة الفحص هنا ذلك.
- كيف أعرف إصدار معرّف UUID؟
- انظر إلى أول رقم في المجموعة الثالثة: 4 يعني عشوائيًا، و7 يعني مرتبًا زمنيًا، و1 يعني طابعًا زمنيًا مع معرّف عقدة. الصقه في أداة التحقق من UUID لترى الإصدار والنوع.
- هل أستعمل UUIDv7 بدلًا من v4 لمفاتيح قاعدة البيانات؟
- غالبًا نعم. مفاتيح v7 مرتبة زمنيًا، مما يُبقي فهارس B-tree مدمجة ويجعل الإدراج سريعًا. التزم بـ v4 إذا كان وقت الإنشاء المضمَّن في معرّف v7 يجب أن يبقى خاصًا.
- هل استعمال UUID كرمز لإعادة تعيين كلمة المرور آمن؟
- يحتوي UUID من v4 المولَّد بمولّد آمن على 122 بتًا عشوائيًا، وهذا يكفي لجعله غير قابل للتخمين، لكن كثيرًا من المكتبات توفر دوال رموز مخصصة بمدة صلاحية صريحة. لا تستخدم أبدًا الإصدارات المعتمدة على الوقت مثل v1 أو v7 كأسرار.