الشرح
كيف يعمل مولّد UUID
يُنشئ مولّد UUID معرّفات فريدة عالميًا (Universally Unique Identifiers) مباشرة في المتصفح. يعتمد UUID v4 على 122 بت من العشوائية التشفيرية وهو أكثر أنواع UUID انتشارًا للتطبيقات التي لا تعتمد على مرجع زمني.
يستخدم التنسيق القياسي شرطات: 8-4-4-4-12 حرفًا سداسيًا عشريًا (مثل 550e8400-e29b-41d4-a716-446655440000). تُرمّز البتات 48-51 الإصدار (4)، والبتات 64-65 النوع (10). يمكنك أيضًا إنشاء معرّفات UUID مضغوطة بدون شرطات أو بأحرف كبيرة.
يستخدم الإنشاء واجهة Web Crypto API في المتصفح (crypto.randomUUID أو crypto.getRandomValues) للحصول على قيم عشوائية آمنة تشفيريًا.
الأخطاء الشائعة
- استخدام UUID كميزة أمان: معرّفات UUID فريدة لكنها ليست سرية. وهي غير مناسبة كرموز وصول أو بديل عن كلمات المرور.
- اعتبار الفرادة مضمونة: معرّفات UUID فريدة باحتمال فلكي الارتفاع، لكنها لا تقدّم ضمانة رياضية. الفرادة المطلقة تتطلب تسجيلًا مركزيًا.
- استخدام UUID v4 لسجلات قابلة للفرز: لا يمتلك UUID v4 ترتيبًا زمنيًا. للمعرّفات القابلة للفرز يكون UUID v7 (RFC 9562) أو ULID أنسب.
- استخدام معرّفات UUID كفهرس قاعدة بيانات دون مراعاة الأداء: قد تسبّب معرّفات UUID العشوائية تجزئة في فهارس B-Tree. يكون UUID v7 أو المعرّفات المتسلسلة أفضل أداءً كمفاتيح أساسية.
حدود هذه الأداة
- UUID v4 فقط — لا دعم لـ v1 (المعتمد على الزمن) أو v5 (المعتمد على الاسم) أو v7 (المرتّب زمنيًا).
- يُنشأ محليًا، دون تسجيل مركزي أو فحص للتكرار.
- غير مناسب كرمز أمان — استخدم رموزًا تشفيرية مخصّصة لذلك.
- لا يوجد تحقق من معرّفات UUID المُدخلة — الإنشاء فقط.
المصادر
- RFC 9562: Universally Unique IDentifiers (UUIDs). IETF, 2024. يعرّف UUID v7 ويحدّث UUID v4.
- RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace. IETF, 2005. التعريف الأصلي لـ UUID v4.
- Web Crypto API: crypto.randomUUID() — W3C/MDN. واجهة المتصفح الأصلية لإنشاء UUID v4.