ByteCompress

مولد UUID

قم بإنشاء UUIDs عشوائية تشفيرياً من الإصدار 4 على الفور في متصفحك. توليد فردي أو جماعي باستخدام واجهة برمجة تطبيقات Web Crypto وفقاً لـ RFC 9562.

51
FreeClient-sideNo signup

يحتوي UUID v4 على 122 بت عشوائي، مما يعطي حوالي 5.3×1036 قيمة ممكنة. للحصول على فرصة 50% لحدوث تصادم واحد، تحتاج إلى توليد 2.71×1018 UUIDs. بمعدل مليار في الثانية، سيستغرق ذلك 85 عاماً. يتم توحيد UUID v4 في RFC 9562 (خلف RFC 4122) وهو أكثر تنسيق معرف مستخدم على نطاق واسع في الأنظمة الموزعة الحديثة. يستخدم هذا المولد واجهة برمجة التطبيقات crypto.randomUUID() في المتصفح، المدعومة من CSPRNG لنظام التشغيل. قم بتوليد UUID واحد أو مئات في وقت واحد - بدون خادم، بدون تسجيل.

كيفية توليد UUIDs

  1. انقر على توليد لإنشاء UUID واحد على الفور.
  2. أدخل كمية (مثل 10، 100، 1000) وانقر على توليد جماعي للحصول على عدة UUIDs دفعة واحدة.
  3. انقر على أي UUID في القائمة لنسخه بشكل فردي، أو استخدم نسخ الكل لنسخ القائمة الكاملة.
  4. اختر تنسيق الإخراج بالأحرف الكبيرة أو الصغيرة حسب متطلبات نظامك المستهدف.
  5. استخدم تنزيل لتصدير كملف نصي.

شرح UUID v4

الهيكل والتنسيق

UUID هو 32 حرفاً سداسياً في نمط 8-4-4-4-12: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. الرقم 4 في المجموعة الثالثة ثابت (الإصدار 4). يتم تثبيت أول 1-2 بت من المجموعة الرابعة كـ 10 في النظام الثنائي (نسخة RFC 4122). يتم توليد 122 بت المتبقية بشكل عشوائي. يظهر UUID v4 في كل مزود سحابي رئيسي، نظام قاعدة بيانات، وإطار عمل ويب كتنسيق المعرف الافتراضي.

احتمالية التصادم

مع 2122 قيمة ممكنة (~5.3×1036)، فإن توليد UUID v4 مكرر من CSPRNG مناسب إحصائياً ضئيل لأي تطبيق في العالم الحقيقي. يتم اعتبار تصادمات UUID v4 مستحيلة لأغراض عملية.

مثال

UUID v4 المولد

f47ac10b-58cc-4372-a567-0e02b2c3d479

نفس UUID في تمثيلات مختلفة

مع فواصل:  f47ac10b-58cc-4372-a567-0e02b2c3d479
أحرف كبيرة:   F47AC10B-58CC-4372-A567-0E02B2C3D479
بدون فواصل:  f47ac10b58cc4372a5670e02b2c3d479
تنسيق URN:  urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479

مقارنة إصدارات UUID

  • v1 - يعتمد على الوقت، يتضمن عنوان MAC للجهاز المولد. يكشف عن معلومات الأجهزة وله أنماط متسلسلة. تجنبها للمعرفات الحساسة للأمان.
  • v3 / v5 - يعتمد على الاسم وحتمي: نفس مساحة الإدخال + الاسم دائماً ينتج نفس UUID. مفيد للمعرفات القابلة للتكرار.
  • v4 - عشوائي بالكامل (122 بت). لا معلومات مضمنة، لا أنماط متسلسلة. النوع الأكثر استخداماً للمعرفات التي يتم إنشاؤها بواسطة التطبيقات.
  • v7 - UUIDs عشوائية مرتبة زمنياً (RFC 9562). أول 48 بت هي طابع زمني بالمللي ثانية لنظام Unix، مما يجعل UUIDs v7 قابلة للترتيب حسب وقت الإنشاء. أفضل لأداء فهرس B-tree في قاعدة البيانات مقارنة بـ v4.

حالات الاستخدام الشائعة

  • المفاتيح الأساسية في PostgreSQL (uuid type)، MySQL (VARCHAR(36))، وMongoDB
  • معرفات الأنظمة الموزعة حيث تقوم خدمات متعددة بإنشاء سجلات بشكل مستقل دون تسلسل مركزي
  • معرفات موارد API المعروضة في عناوين URL العامة (أكثر أماناً من الأعداد الصحيحة المتسلسلة التي تمكّن هجمات التعداد)
  • أسماء الملفات للأصول المرفوعة لمنع التصادمات
  • مفاتيح عدم التكرار لطلبات API لمنع المعالجة المكررة عند إعادة المحاولة

لإنشاء كلمات مرور عشوائية آمنة (بدلاً من المعرفات)، استخدم مولد كلمات المرور. للحصول على معرفات تعتمد على الوقت والتي يمكن ترتيبها في قاعدة البيانات، ابحث عن دعم UUID v7 في برنامج تشغيل قاعدة البيانات أو ORM الخاص بك.

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

ما مدى تميز UUID من الإصدار 4 في الممارسة العملية؟

يحتوي UUID v4 على 122 بت من العشوائية، مما يعطي حوالي 5.3×1036 قيمة ممكنة. للحصول على فرصة 50% لحدوث تصادم واحد، تحتاج إلى توليد 2.71×1018 UUIDs - بمعدل مليار في الثانية، سيستغرق ذلك حوالي 85 عاماً. في جميع التطبيقات العملية، يتم اعتبار تصادمات UUID v4 مستحيلة.

هل UUIDs التي تم إنشاؤها هنا آمنة تشفيرياً؟

نعم. تستخدم هذه الأداة crypto.randomUUID() (أو crypto.getRandomValues() كخيار احتياطي)، وكلاهما مدعوم من نظام التشغيل CSPRNG. UUIDs التي تم إنشاؤها مناسبة للاستخدام كرموز أمان، معرفات جلسات، وسياقات حساسة أخرى للأمان.

هل يجب أن أستخدم UUIDs أم أعداداً صحيحة تلقائية كمفاتيح أساسية في قاعدة البيانات؟

كلاهما لهما مزايا وعيوب. يعمل UUID v4 بشكل جيد في الأنظمة الموزعة حيث تقوم عدة عقد بتوليد معرفات بشكل مستقل، ويجعل المعرفات غير قابلة للتنبؤ في عناوين URL العامة (مما يمنع هجمات التعداد)، ويسهل دمج قواعد البيانات. الأعداد الصحيحة التلقائية أبسط، أصغر (4-8 بايت مقابل 16 بايت)، ولها أداء أفضل في فهرس B-tree للإدراجات المتسلسلة. يقدم UUID v7 حلاً وسطاً: UUIDs عشوائية يمكن ترتيبها زمنياً.

ما هو تنسيق UUID؟

UUID هو 32 حرفاً سداسياً صغيراً مجمعة بفواصل في نمط 8-4-4-4-12: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. الطول الإجمالي للسلسلة مع الفواصل هو 36 حرفاً. تخزن PostgreSQL UUIDs كنوع ثنائي أصلي بحجم 16 بايت؛ بينما تخزن MySQL وSQLite عادةً السلسلة المكونة من 36 حرفاً.

هل يمكنني توليد UUIDs في وضع عدم الاتصال؟

نعم. بمجرد تحميل هذه الصفحة، يتم تشغيل توليد UUID بالكامل باستخدام JavaScript المحلي وواجهة برمجة التطبيقات crypto المدمجة في المتصفح. لا يتم إجراء أي طلبات شبكة أثناء التوليد. تعمل الأداة في وضع عدم الاتصال بعد تحميل الصفحة الأولية.