مُنشئ UUID
إنشاء معرف UUID v4 وUUID v7 فورًا.
إنشاء معرف UUID v4 وUUID v7 فورًا.
يتم إنشاء UUID v4 باستخدام الأرقام العشوائية. إنه يوفر 122 بت من العشوائية، مما يجعل الاصطدامات غير محتملة للغاية.
يجمع UUID v7 بين مسجّل Unix (بالملليمترات) مع بتات عشوائية. إنه مُرتب حسب الوقت، مما يجعله مثاليًا لفرز قواعد البيانات.
مولّد UUID — إنشاء معرّفات UUID v4 و v7 فوراً
تحتاج كل التطبيقات الحديثة إلى معرّفات فريدة — لمفاتيح قواعد البيانات، رموز API، معرفات الجلسة، الأنظمة الموزعة، والمزيد. يؤدي التخزين الثابت للمعرّفات أو الاعتماد على الأعداد الصحيحة المتزايدة تلقائياً إلى حدوث تصادمات، ومخاطر أمنية، ومشاكل في قابلية التوسع. يُحلّ لدينا مولّد UUID المجاني هذه المشكلة من خلال إنشاء معرّفات عالمية فريدة وقوية التشفير بنقرة واحدة. اختر بين UUID v4 للعشوائية المطلقة أو UUID v7 للمعرّفات المرتبة زمنياً، واولد حتى 100 معرّف دفعة واحدة، وانسخها جميعاً إلى الحافظة. تعمل كل العمليات داخل متصفحك — ولا تغادر أي بيانات جهازك أبداً.
ما هو UUID؟
UUID (المعرّف الفريد العالمي) هو معرّف مكون من 128 بت تم تعريفه في RFC 4122 وتحديثه لاحقاً بواسطة RFC 9562. يُمثل عادةً كسلسلة مكونة من 36 حرفاً مع شرطات، مثل 550e8400-e29b-41d4-a716-446655440000. تعني كلمة "فريد عالمياً" أن احتمالية توليد معرّفي UUID متطابقين ضئيلة للغاية بشكل فلكي — تقريباً 1 من 2.71 × 10^18 في حالة UUID v4.
يُستخدم UUID على نطاق واسع في تطوير البرمجيات. تستخدم قواعد البيانات هذه المعرّفات كمفاتيح أساسية لأنها يمكن توليدها بشكل مستقل دون تنسيق بين الخوادم. وتستخدمها واجهات برمجة التطبيقات (APIs) كمعرّفات للطلبات لتتبعها وتصحيح الأخطاء. كما تعتمد أنظمة المصادقة عليها كرموز للجلسات. وتستخدم الأنظمة الموزعة هذه المعرّفات كمعرّفات للأحداث لمطابقة السجلات. في أي وقت تحتاج فيه إلى معرّف مضمون كونه فريداً دون وجود سلطة مركزية، يكون UUID هو الحل الأمثل.
على عكس الأعداد الصحيحة المتزايدة تلقائياً، لا تكشف UUIDs عن أي شيء يتعلق بترتيب أو عدد السجلات. وهذا يجعلها أكثر أماناً للروابط العامة وواجهات برمجة التطبيقات — فلا يستطيع المهاجم تخمين معرّفات الموارد الأخرى بمجرد زيادة الرقم.
كيفية استخدام مولّد UUID
توليد UUIDs يستغرق بضع ثوانٍ فقط. اختر الإصدار المفضل، اضبط الكمية، وانقر على زر التوليد.
- اختر إصدار UUID. اختر UUID v4 للمعرّفات العشوائية أو UUID v7 للمعرّفات المرتبة زمنياً. لكل إصدار نقاط قوة مختلفة — انظر جدول المقارنة أدناه.
- حدد الكمية. يمكنك توليد ما بين 1 إلى 100 معرّف UUID دفعة واحدة. يتم توليد جميع المعرّفات بشكل مستقل.
- عدّل خيارات التنسيق. فعل خيار حروف كبيرة (Uppercase) للحصول على أحرف سداسية عشرية كبيرة (مفيد لأنظمة قواعد البيانات المحددة). وفعل خيار بدون شرطات (No Dashes) للحصول على سلسلة سداسية عشرية مكونة من 32 حرفاً بدون شرطات (شائع في واجهات برمجة التطبيقات المحددة والأنظمة القديمة).
- انقر على Generate (توليد). سينشئ الأداة معرّفاتك فوراً باستخدام مولد أرقام عشوائية آمن تشفيرياً.
- انسخ معرّفات UUID الفردية بالنقر على أي معرّف في القائمة، أو انسخ الكل (Copy All) للحصول على كل معرّف في سطر منفصل.
UUID v4 مقابل UUID v7: أيهما يجب أن تستخدم؟
| الميزة | UUID v4 | UUID v7 |
|---|---|---|
| طريقة التوليد | 122 بت من البيانات العشوائية | طابع زمني يونيكس (ms) من 48 بت + 74 بت عشوائية |
| الفرادة | احتمالية تصادم عشوائية | احتمالية تصادم عشوائية (نفس الإنتروبيا) |
| قابل للفرز زمنياً | لا | نعم — يبدأ بالطابع الزمني |
| أداء قواعد البيانات | نمط الإدخال العشوائي يتسبب في تجزئة الفهرس | نمط الإدخال المتسلسل يحسن توافر الفهرس (Index Locality) |
| الأفضل لـ | المعرّفات العامة، الرموز، المفاتيح لمرة واحدة | المفاتيح الأساسية لقواعد البيانات، سجلات الأحداث، بيانات السلاسل الزمنية |
| المعيار | RFC 4122 | RFC 9562 (2024) |
يُعد UUID v4 الخيار الافتراضي لعقود من الزمان. إنه بسيط، مدعوم على نطاق واسع، ويعمل في كل مكان. ومع ذلك، نظراً لأن قيم UUID v4 عشوائية تماماً، فإن إدراجها في فهرس قاعدة بيانات B-tree يتسبب في تجزئة عشوائية للصفحات وضعف توافر ذاكرة التخزين المؤقت (Cache Locality). بالنسبة لقواعد البيانات عالية الإنتاجية، يمكن أن يقلل هذا بشكل كبير من أداء الكتابة.
يُحل UUID v7 هذه المشكلة عن طريق تضمين طابع زمني يونيكس بدقة ميلي ثانية في أول 48 بتاً. وهذا يعني أن قيم UUID v7 مرتبة تقريباً حسب وقت الإنشاء، مما يحافظ على تنظيم فهارس قاعدة البيانات ويحسن أداء الإدخال. إذا كنت تبني نظاماً جديداً يستخدم UUID كمفاتيح أساسية لقواعد البيانات، فإن UUID v7 هو أفضل ممارسة حديثة.
الميزات الرئيسية
| الميزة | الوصف |
|---|---|
| دعم UUID v4 و v7 | توليد أي إصدار حسب حالة الاستخدام الخاصة بك |
| التوليد دفعات | إنشاء ما يصل إلى 100 معرّف UUID بنقرة واحدة |
| تحويل إلى حروف كبيرة | إخراج UUIDs بصيغة سداسية عشرية كبيرة لأنظمة تحتاجها |
| خيار بدون شرطات | إزالة الشرطات للحصول على سلاسل سداسية عشرية مدمجة مكونة من 32 حرفاً |
| النقر للنسخ | انقر على أي UUID لنسخه فوراً إلى حافظة النظام |
| نسخ الكل | نسخ جميع UUIDs المولدة كقائمة مفصولة بأسطر جديدة |
| آمن تشفيرياً | يستخدم crypto.getRandomValues() لضمان العشوائية الحقيقية |
| الخصوصية أولاً | يتم كل التوليد داخل متصفحك — بدون طلبات للخادم |
حالات الاستخدام الواقعية
المفاتيح الأساسية لقواعد البيانات
يسمح استبدال الأعداد الصحيحة المتزايدة تلقائياً بـ UUIDs للأنظمة الموزعة بتوليد المعرّفات بشكل مستقل دون تنسيق. ويُعد UUID v7 مفيداً بشكل خاص هنا بسبب طبيعته المرتبة زمنياً التي تحافظ على كفاءة فهارس قواعد البيانات.
معرّفات طلبات واجهة برمجة التطبيقات
خصص UUID لكل طلب وارد في واجهة برمجة التطبيقات للتتبع، وتصحيح الأخطاء، ومطابقة السجلات. عندما يبلغ المستخدم عن خطأ، يمكنك البحث في سجلاتك عن UUID الخاص بالطلب لعرض دورة حياة الطلب والاستجابة كاملةً.
رموز الجلسة والمصادقة
تُعد UUIDs معرّفات ممتازة للجلسات لأنها غير قابلة للتخمين وفريدة. قم بتوليد UUID v4 عندما يسجل المستخدم دخوله، واحفظه في مخزن الجلسة الخاص بك، وقم بالتحقق منه مع كل طلب لاحق.
أنظمة الأحداث الموزعة
في بنية الخدمات المصغرة، تحتاج الأحداث إلى معرّفات فريدة يمكن لأي خدمة توليدها دون منسق مركزي. تضمن UUIDs ألا تنتج أي خدمتين نفس معرّف الحدث أبداً، حتى عند التشغيل بالتوازي.
تسمية الملفات والموارد
عندما يرفع المستخدمون الملفات، يُعد استخدام اسم الملف الأصلي محفوفاً بالمخاطر — فقد يحتوي على أحرف خاصة، أو يتعارض مع الملفات الموجودة، أو يكشف عن البنية الداخلية. قم بتوليد UUID لكل ملف واستخدمه كمفتاح تخزين. يعمل هذا أيضاً للتقارير المولدة، وملفات التصدير، والموارد المؤقتة.
الاختبار والتطوير
يحتاج المطورون باستمرار إلى عينات من UUIDs لاختبارات الوحدة، والبيانات التمهيدية (fixtures)، والبيانات الوهمية. قم بتوليد دفعة من 10 أو 20 UUIDs، وانسخها جميعاً، والصقها مباشرةً في ملف الاختبار أو سكريبت بدء تشغيل قاعدة البيانات (seed script).
إضفاء الطابع المجهول على البيانات
عندما تحتاج إلى استبدال المعلومات القابلة للتعرف على الشخص في مجموعة بيانات مع الحفاظ على الفرادة، توفر UUIDs بدائل مجهولة لكنها مميزة. يرتبط كل معرّف حقيقي بمعرف UUID واحد بالضبط، ولا يمكن عكس هذا الترتيب.
النصائح وأفضل الممارسات
- استخدم UUID v7 للمفاتيح الأساسية الجديدة لقواعد البيانات. يحافظ البادئ المرتب زمنياً على صحة فهارس B-tree ويحسن معدل كتابة البيانات مقارنة بقيم UUID v4 العشوائية.
- استخدم UUID v4 للرموز والمعرّفات لمرة واحدة. عندما تحتاج إلى عشوائية مطلقة — رموز الجلسة، والقيم الأحادية (nonces)، وكلمات المرور المؤقتة — يُعد UUID v4 الخيار الصحيح.
- احفظ UUIDs كنوع UUID الأصلي في قاعدة بياناتك. يحتوي PostgreSQL على نوع
UUIDأصلي يخزن القيمة بـ 16 بايتاً بدلاً من 36 حرفاً. يوفر هذا المساحة ويحسن أداء الاستعلامات. يدعم MySQL 8.0+ أيضاً نوع UUID أصلي. - لا تستخدم UUIDs كعناصر سرية. على الرغم من صعوبة تخمين قيم UUID v4، إلا أنها لم تُصمم لتكون عناصر تشفير سرية. بالنسبة لمفاتيح API، أو رموز الوصول، أو مفاتيح التشفير، استخدم أداة مخصصة مثل مولّد كلمات المرور أو دالة اشتقاق مفاتيح مناسبة.
- قم بتوحيد حالة الأحرف عند مقارنة UUIDs. تعتبر UUIDs غير حساسة لحالة الأحرف حسب المواصفة، لكن مقارنة النصوص حساسة لحالة الأحرف في معظم لغات البرمجة. قم دائماً بالتحويل إلى الأحرف الصغيرة (أو الكبيرة) قبل المقارنة.
- يفضل التنسيق ذو الشرطات. التنسيق القياسي المكون من 36 حرفاً مع الشرطات معترف به عالمياً ومدعوم من جميع مكتبات UUID. إزالة الشرطات توفر 4 بايتات لكنها قد تسبب مشاكل في التوافق مع بعض المفسرات.
الأسئلة الشائعة
هل مولّد UUID مجاني للاستخدام؟
نعم. مولّد UUID مجاني بالكامل بدون حدود للاستخدام، ولا يتطلب التسجيل، ولا يوجد أي تكاليف خفية. قم بتوليد عدد UUIDs الذي تحتاجه، كلما أردت.
هل UUIDs المولدة فريدة حقاً؟
يستخدم UUID v4 122 بتاً من العشوائية، مما يعني وجود 2^122 (تقريباً 5.3 × 10^36) قيمة ممكنة. احتمالية توليد قيمة مكررة ضئيلة جداً لدرجة أنك ستحتاج إلى توليد مليارات من UUIDs في الثانية لملايين من السنين قبل توقع أي تصادم. بالنسبة لأي تطبيق عملي، فإن قيم UUID v4 فريدة.
ما الفرق بين UUID v4 و UUID v7؟
يتم توليد UUID v4 باستخدام بيانات عشوائية. يبدأ UUID v7 بطابع زمني يونيكس بدقة ميلي ثانية يتبعه بتات عشوائية. كلاهما فريد، لكن قيم UUID v7 قابلة للفرز حسب وقت الإنشاء، مما يجعلها أفضل لفهرسة قواعد البيانات. استخدم UUID v4 للعشوائية العامة، و UUID v7 عندما يكون الترتيب الزمني مهماً.
هل يمكنني توليد UUIDs بدون شرطات؟
نعم. فعّل خيار بدون شرطات (No Dashes) لتوليد سلاسل سداسية عشرية مكونة من 32 حرفاً بدون شرطات. هذا التنسيق شائع في بعض واجهات برمجة التطبيقات، والأنظمة القديمة، وحالات التخزين المدمجة.
هل تعمل هذه الأداة بدون اتصال؟
تعمل الأداة داخل متصفحك وتولد UUIDs باستخدام واجهة برمجة التطبيقات المدمجة crypto.getRandomValues(). بمجرد تحميل الصفحة، يعمل توليد UUIDs دون الحاجة إلى أي طلبات شبكية. ومع ذلك، ستحتاج إلى اتصال بالإنترنت لتحميل الصفحة في البداية.
هل يتم إرسال بياناتي إلى أي خادم؟
لا. يحدث كل توليد لـ UUIDs بالكامل داخل متصفحك باستخدام JavaScript. لا يتم إرسال أو تسجيل أو تخزين أي من UUIDs على أي خادم. عند مغادرة الصفحة، توجد القيم المولدة فقط في حافظة النظام.