ما الذي تفعله هذه الأداة
تولّد معرّفات UUID بالصيغ التي يستخدمها المهندسون فعلاً: v4 (عشوائي)، و v7 (مسبوق بطابع زمني، قابل للترتيب)، إضافةً إلى القيمتين الخاصّتين NIL و MAX. الإخراج قابل للتهيئة — بشَرطات أو متراص، بأحرف صغيرة أو كبيرة، بأقواس معقوفة أو دونها — لتطابق ما يتوقّعه نظامك المستهدف. يمكنك توليد حتى 1000 في المرة الواحدة.
متى تستخدمها
- إنتاج مفاتيح أوّلية لجدول جديد دون رحلة إلى قاعدة البيانات.
- توليد مفاتيح idempotency لاستدعاءات API قابلة للإعادة.
- ملء تثبيتات الاختبار بمعرّفات ثابتة لكنها فريدة.
- الانتقال من معرّفات أعداد ذاتية الزيادة إلى معرّفات معتِمة.
كيف تعمل
تأتي معرّفات v4 من crypto.getRandomValues، وهي مولّد الأرقام شبه العشوائية الآمن تشفيرياً في المتصفح. تُضبط بِتّات الإصدار (4) والصِيغة (RFC 4122) وفق المواصفة، ويبقى 122 بت من العشوائية — احتمال التصادم يساوي صفراً عملياً عند أي معدّل توليد واقعي.
أمّا معرّفات v7 فترمّز طابعاً زمنياً Unix بطول 48 بت بالأجزاء من الألف ثم 74 بت عشوائية. ولأن الطابع الزمني يأتي أولاً، تُرتَّب معرّفات v7 معجمياً بوقت الإنشاء، مما يجعلها ودودة أكثر لذواكر التخزين في فهارس B-tree مقارنةً بـ v4. تم توحيدها في RFC 9562 (مايو 2024).
ملاحظات
هل أنتقل من v4 إلى v7 لمفاتيح قواعد البيانات؟ الأرجح نعم للجداول الجديدة. تتجمّع معرّفات v7 بحسب وقت الإدراج، مما يُبقي الصفوف الحديثة على نفس صفحات الفهرس ويُقلّل تضخّم الكتابة. الجانب الآخر أن وقت الإنشاء يتسرّب داخل المعرّف — إن أردت معرّفات عامّة معتِمة فابقَ على v4.
ما الفرق بين NIL و MAX؟ NIL كلها أصفار (00000000-0000-0000-0000-000000000000) و MAX كلها واحدات — قيمتان دلاليّتان تُعرّفهما RFC 9562 لمعنيي «لا يوجد UUID» و «أقصى UUID».
هل هذه عشوائية تشفيرياً؟ v4 نعم. v7 فيها 74 بت عشوائية — مشتقّة تشفيرياً أيضاً، لكن الطوابع الزمنية تُقلّص فضاء البحث للمهاجم، فلا تستخدم v7 رمزاً لجلسة.
أدوات ذات صلة
- UUID v4 — صفحة العشوائي فقط
- UUID v7 — صفحة القابل للترتيب فقط
- مولّد التجزئة — حين تحتاج تلخيصاً للمحتوى، لا معرّفاً معتِماً