UUID

10 tools

تغطي أدوات UUID في ToolDeck جميع تنسيقات المعرفات الفريدة الرئيسية في مكان واحد. تشمل المجموعة: مولّد UUID v4 لإنشاء معرفات عشوائية قوية تشفيريًا؛ ومولّد UUID v7 للمفاتيح الأساسية القابلة للفرز بالطابع الزمني؛ ومولّد UUID v1 للمعرفات القائمة على الوقت وعنوان MAC؛ ومولّد UUID v2 لأنظمة DCE القديمة؛ ومولّد UUID v3 للمعرفات الحتمية المبنية على MD5؛ ومولّد ULID للسلاسل المضغوطة القابلة للفرز؛ ومولّد NanoID للرموز المختصرة الآمنة للروابط؛ ومولّد CUID للتنسيق الأصلي المقاوم للتصادم؛ ومولّد CUID2 لخلفه الحديث؛ فضلًا عن مُفكِّك UUID لفحص المعرفات الموجودة. تعمل جميع الأدوات بالكامل في متصفحك باستخدام Web Crypto API — لا يُرسَل أي بيانات إلى أي خادم، ولا حاجة لحساب.

ما هي أدوات UUID والمعرفات الفريدة؟

UUID (المعرّف الفريد العالمي) هو معرف بحجم 128 بت معياري وفق RFC 9562 (المعروف سابقًا بـ RFC 4122). يُكتب بصيغة 32 حرفًا ست عشريًا بالشكل 8-4-4-4-12، ويبدو كالتالي: 550e8400-e29b-41d4-a716-446655440000. يحدد المعيار إصدارات متعددة، يستخدم كلٌّ منها استراتيجية مختلفة لضمان التفرد: أرقام عشوائية، أو طوابع زمنية، أو تجزئة حتمية.

صُمِّمت معرفات UUID لتمكين الأنظمة الموزعة من توليد معرفات دون الحاجة إلى منسق مركزي. سواء كنت تُسند مفتاحًا أساسيًا في PostgreSQL، أو تولد رمز جلسة في تطبيق ويب، أو تسمّي ملفًا في مخزن الكائنات — تتيح معرفات UUID لكل عقدة في نظامك إنشاء معرف فريد عالميًا بشكل مستقل، مع احتمال تصادم منخفض لدرجة لا يُعتد بها عمليًا.

ظهرت تنسيقات بديلة متعددة للمعرفات الفريدة لمعالجة قيود بعينها: يضيف كل من ULID و UUID v7 قابلية الفرز المعجمي لتحسين كفاءة فهارس قواعد البيانات؛ يقلل NanoID الحجم للروابط وملفات تعريف الارتباط؛ يُقدّم CUID2 أولوية للمقاومة القائمة على البصمة ضد التصادم عند التوليد المكثف من جانب العميل.

لماذا تستخدم أدوات UUID في ToolDeck؟

تعمل أدوات UUID في ToolDeck بالكامل في متصفحك. لا استدعاءات API، ولا معالجة من جانب الخادم، ولا تسجيل بيانات. يستخدم كل مولّد Web Crypto API (crypto.getRandomValues) للحصول على إنتروبيا قوية تشفيريًا — المصدر ذاته الذي تستخدمه المتصفحات لمادة مفاتيح TLS.

🔐
إنتروبيا قوية تشفيريًا
تستخدم جميع المولّدات القائمة على العشوائية (UUID v4 وNanoID وCUID2) crypto.getRandomValues لا Math.random. الناتج مناسب لحالات الاستخدام الحساسة أمنيًا كرموز الجلسات ومفاتيح API.
📦
جميع تنسيقات المعرفات الرئيسية في مكان واحد
UUID v1 إلى v7 وULID وNanoID وCUID وCUID2 — جميع التنسيقات التي يحتاجها المطور، مع خيارات للتوليد الجماعي والنسخ بنقرة واحدة.
🔍
فك تشفير المعرفات الموجودة وفحصها
يستخرج مُفكِّك UUID الإصدار والمتغير والطابع الزمني وحقول العقدة من أي UUID. مفيد لتصحيح الأخطاء والمراجعة وفهم المعرفات القديمة في قاعدة الشفرة.
بلا إعداد، يعمل دون اتصال
لا تثبيت، ولا تسجيل، ولا تبعيات وقت التشغيل. افتح الصفحة وابدأ التوليد. تعمل جميع الأدوات دون اتصال بعد تحميل الصفحة — مفيد في البيئات المعزولة أو الشبكات المقيدة.

حالات استخدام أدوات UUID

تظهر المعرفات الفريدة في كل طبقة من طبقات التقنية. إليك كيف يستخدم مختلف الأدوار أدوات توليد UUID:

المفاتيح الأساسية لقواعد البيانات
يُسند مهندسو الواجهة الخلفية معرفات UUID v4 أو UUID v7 مفاتيحَ أساسيةً في PostgreSQL وMySQL وMongoDB. يُبقي بادئة الطابع الزمني في UUID v7 الصفوفَ مرتبةً فيزيائيًا على القرص، مما يتجنب تقسيم الصفحات في أحمال العمل الكثيفة الإدراج.
حالة الواجهة الأمامية ومعرفات المكونات
يستخدم مطورو الواجهة الأمامية NanoID أو UUID v4 لتوليد مفاتيح React ثابتة لعناصر القوائم المنشأة ديناميكيًا، ومعرفات نوافذ الحوار لسمات إمكانية الوصول ARIA، ورموز التوحيد في عمليات إرسال النماذج.
تدفقات الأحداث الموزعة
في الأنظمة المدفوعة بالأحداث، يحتاج كل حدث إلى معرف فريد عالميًا وقابل للفرز. يستخدم مهندسو DevOps والمنصات ULID أو UUID v7 ليتمكن مستهلكو Kafka ومجمّعات السجلات وسجلات التدقيق من الفرز بحسب وقت الإنشاء دون حقل طابع زمني ثانوي.
توليد بيانات الاختبار
يولّد مهندسو ضمان الجودة دفعات UUID بالجملة لتعبئة قواعد بيانات الاختبار بمعرفات واقعية وغير متسلسلة. يتيح UUID v3 أو v5 الحتمي إعادة توليد المعرف ذاته من إدخال معروف — مفيد لإعدادات الاختبار القابلة للاستنساخ.
معرفات الارتباط في الخدمات المصغرة
إرفاق UUID بكل طلب HTTP وارد ونشره عبر استدعاءات الخدمات (رأس X-Request-ID) يتيح لأنظمة التتبع الموزع ربط السجلات عبر الخدمات. UUID v4 هو المعيار الفعلي لارتباط الطلبات.
تسمية الموارد والأصول
كثيرًا ما تتضمن مفاتيح مخزن الكائنات (S3 وGCS وCloudflare R2) وأسماء ملفات أصول CDN معرف UUID لمنع تصادمات التخزين المؤقت والتخمين في الروابط. يُقلل تنسيق NanoID المضغوط المؤلف من 21 حرفًا طول الرابط مقارنةً بمعرفات UUID الكاملة المؤلفة من 36 حرفًا.

مرجع إصدارات وتنسيقات UUID

يقارن الجدول أدناه جميع إصدارات UUID مع البدائل الأكثر استخدامًا. استخدمه لتحديد التنسيق المناسب لمتطلباتك بسرعة.

المعرّفالخوارزميةقابل للفرزحتميالأنسب لـ
UUID v4عشوائي (CSPRNG)معرفات عامة الأغراض، رموز الجلسات، المفاتيح الأساسية
UUID v7طابع زمني Unix بالملي ثانية + عشوائيمفاتيح أساسية قابلة للفرز، معرفات الأحداث الموزعة (RFC 9562)
UUID v1طابع زمني + عنوان MACمعرفات مرتبة زمنيًا، أنظمة أحادية العقدة، توافق مع الأنظمة القديمة
UUID v3مساحة الأسماء + الاسم + MD5معرفات قابلة للاستنساخ من مدخلات معروفة (DNS، روابط URL)
UUID v5مساحة الأسماء + الاسم + SHA-1مثل v3 ولكن بتجزئة أقوى؛ يُفضَّل v5 على v3
UUID v2طابع زمني + DCE UID/GIDبيئات POSIX/DCE القديمة؛ تجنب في المشاريع الجديدة
ULIDبادئة زمنية + عشوائيمعرفات قابلة للفرز، آمنة للروابط، بدون شرطات (26 حرفًا)
NanoIDعشوائي (CSPRNG)، أبجدية آمنة للروابطمعرفات مختصرة للروابط وملفات تعريف الارتباط وسمات HTML (21 حرفًا)
CUID2بصمة + طابع زمني + عشوائيتوليد جماعي من جانب العميل، مقاوم للتصادم

UUID v3 و v5 حتميان: مساحة الأسماء والاسم ذاتهما ينتجان دائمًا UUID ذاته. تُنتج جميع التنسيقات الأخرى قيمة جديدة في كل استدعاء.

كيف تختار أداة UUID المناسبة

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

  1. 1
    إذا كنت تحتاج معرفًا فريدًا للأغراض العامة دون متطلبات خاصةمولّد UUID v4
  2. 2
    إذا كنت تحتاج معرفات تُرتَّب زمنيًا وتتوافق مع معيار UUIDمولّد UUID v7
  3. 3
    إذا كنت تحتاج معرفات مرتبة زمنيًا مع طابع زمني مضمّن لأنظمة أحادية العقدة أو ذات تزامن منخفضمولّد UUID v1
  4. 4
    إذا كنت تحتاج معرفات قابلة للفرز وآمنة للروابط وخالية من الشرطاتمولّد ULID
  5. 5
    إذا كنت تحتاج معرفات مضغوطة وآمنة للروابط أقصر من UUID الكاملمولّد NanoID
  6. 6
    إذا كنت تولد معرفات كثيرة من جانب العميل وتحتاج مقاومة قوية للتصادممولّد CUID2
  7. 7
    إذا كنت تحتاج تنسيق CUID v1 للتوافق مع أنظمة موجودة مبنية على المواصفة الأصليةمولّد CUID
  8. 8
    إذا كنت بحاجة إلى استنساخ المعرف ذاته بشكل حتمي من مساحة أسماء واسممولّد UUID v3
  9. 9
    إذا كنت تعمل مع أنظمة DCE أو POSIX قديمة تتطلب معرفات v2مولّد UUID v2
  10. 10
    إذا لديك UUID موجود وتريد فحص إصداره أو متغيره أو طابعه الزمنيمُفكِّك UUID

يوفر كلٌّ من UUID v7 وULID بادئات زمنية بدقة الملي ثانية وقابلية فرز معجمية. الفرق الجوهري: يستخدم UUID v7 تنسيق UUID القياسي (8-4-4-4-12، 36 حرفًا) لأقصى قدر من التوافق مع المنظومة البرمجية، بينما يستخدم ULID ترميز Base32 مخصصًا (26 حرفًا، آمن للروابط، بدون شرطات). إذا كانت قاعدة البيانات أو ORM أو إطار العمل يدعم أعمدة UUID أصلًا، فضّل UUID v7. إذا كنت تحتاج معرفات أقصر بدون قيود إطار العمل، فإن ULID أكثر إيجازًا.

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

ما هو UUID؟
UUID (المعرّف الفريد العالمي) قيمة بحجم 128 بت معيارية وفق RFC 9562. تُكتب بصيغة 32 رقمًا ست عشريًا موزعة في خمس مجموعات مفصولة بشرطات: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. يحدد المعيار إصدارات متعددة باستراتيجيات تفرد مختلفة — عشوائية (v4)، قائمة على الطابع الزمني (v1، v7)، أو حتمية قائمة على الاسم (v3، v5).
ما الفرق بين UUID v4 وUUID v7؟
يملأ UUID v4 جميع الـ 122 بتًا غير الثابتة ببيانات عشوائية من مصدر آمن تشفيريًا. يرمّز UUID v7 طابعًا زمنيًا يونيكس 48 بتًا بالملي ثانية في أول 48 بتًا، يليه بتات عشوائية. النتيجة: تُرتَّب معرفات UUID v7 زمنيًا كسلاسل نصية عادية، مما يُبقي فهارس B-tree لقواعد البيانات منظمة عند الإدراج. أُضيف UUID v7 في RFC 9562 (أبريل 2024) وهو الخيار المفضل للمفاتيح الأساسية الجديدة.
هل قيم UUID v4 آمنة تشفيريًا؟
تُولَّد قيم UUID v4 باستخدام مولّد أرقام شبه عشوائية آمن تشفيريًا (CSPRNG). وهي مناسبة كرموز غير قابلة للتخمين — معرفات الجلسات وروابط إعادة تعيين كلمة المرور وما شابهها. غير أن UUID ليس سرًا في حد ذاته: لا يحتوي على HMAC، ولا تاريخ انتهاء، ولا ارتباط بمستخدم بعينه. عامِل معرفات UUID كمعرفات غير شفافة لا كبيانات اعتماد للمصادقة.
هل يمكن لنظامين مختلفين توليد UUID متطابق؟
احتمال التصادم لـ UUID v4 يبلغ نحو 1 من 2^122 لكل زوج. للحصول على احتمال 50% لأي تصادم، تحتاج إلى توليد نحو 2.7 × 10^18 معرف — أبعد بكثير مما ينتجه أي نظام حقيقي. تتضمن معرفات UUID v1 وv7 إضافيًا طابعًا زمنيًا و/أو بتات عشوائية، مما يجعل التصادم العرضي أقل احتمالًا. لجميع الأغراض العملية، لن تتصادم معرفات UUID الصادرة من أنظمة مختلفة.
لماذا يتكون UUID من 36 حرفًا؟
يمثل UUID 128 بت = 16 بايت. ترميزه بالنظام الست عشري يُنتج 32 حرفًا. يضيف تنسيق UUID 4 شرطات في مواضع ثابتة (بعد مجموعات من 8 و4 و4 و4 أرقام ست عشرية) لتحسين القراءة وتيسير التعرف بصريًا على بتات الإصدار والمتغير، محققًا 36 حرفًا إجمالًا. الشرطات لا تحمل أي بيانات.
ما هو ULID وكيف يختلف عن UUID؟
ULID (المعرف الفريد العالمي القابل للفرز معجميًا) معرف بحجم 128 بت مُرمَّز بـ Crockford Base32 (26 حرفًا، غير حساس لحالة الأحرف، بدون شرطات). تُرمِّز أول 48 بتًا وقت Unix بالملي ثانية؛ الـ 80 بتًا المتبقية عشوائية. تُرتَّب معرفات ULID بشكل صحيح كسلاسل نصية عادية وهي أكثر إيجازًا من UUID. ليست جزءًا من RFC UUID — تستخدم ترميزًا مختلفًا وتفتقر إلى حقلَي الإصدار والمتغير الخاصين بـ UUID.
هل يجب أن أستخدم UUID أم أعدادًا صحيحة متزايدة تلقائيًا كمفاتيح أساسية؟
الأعداد الصحيحة المتزايدة تلقائيًا متسلسلة ومضغوطة وصديقة للفهارس، لكنها تتطلب منسقًا مركزيًا (قاعدة البيانات) للتعيين — وهو ما يفشل في الأنظمة الموزعة ويكشف عن أعداد الصفوف. يمكن توليد معرفات UUID (خاصة v7 أو ULID) من جانب العميل دون رحلة إلى قاعدة البيانات، مما يتيح الإدراج التفاؤلي والكتابة الموزعة. المقايضة هي التخزين (16 بايت مقابل 4–8 بايت) ومحلية الفهرس الأدنى قليلًا لمعرفات UUID العشوائية (v4). يُلغي UUID v7 وULID مشكلة محلية الفهرس باستخدام بادئات زمنية.
ما الفرق بين UUID v3 وUUID v5؟
UUID v3 وv5 كلاهما حتميان: ينتجان دائمًا UUID ذاته لزوج مساحة الأسماء والاسم ذاته، مما يجعلهما مفيدَين لتوليد معرفات قابلة للاستنساخ لأشياء كإدخالات DNS والروابط أو معرفات الكائنات. الفارق الوحيد هو خوارزمية التجزئة: v3 يستخدم MD5 (128 بت، قديم)، وv5 يستخدم SHA-1 (160 بت، مبتور إلى 128 بت). فضّل UUID v5 في المشاريع الجديدة — SHA-1 أقوى من MD5، وإن لم يُستخدم أيٌّ من الإصدارين كتجزئة تشفيرية.