الانتقال إلى المحتوى الرئيسي

توليد قيم UUID v5 حتمية

يُشتق UUID من الإصدار 5 من معرّف UUID لنطاق أسماء ومن اسم باستخدام SHA-1. كل من يحسب تجزئة نطاق الأسماء نفسه والاسم نفسه يحصل على UUID نفسه تمامًا، لذا يمكن إعادة حساب المعرّفات بدلًا من تخزينها.

مثال محلول

مساحة الاسم (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
الاسم
example.com
النتيجة
cfbff0d1-9375-5685-968c-48ce8b15ae17
مساحة الاسم (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
الاسم
Example.com
النتيجة
a1feb884-07f5-5a14-8edb-cb659a7fbadc

طريقة العمل

  • تُضم بايتات نطاق الأسماء الستة عشر إلى بايتات الاسم بترميز UTF-8 ثم تُجزّأ باستخدام SHA-1. تصبح أول 16 بايتًا من الناتج هي UUID بعد ضبط بتات الإصدار (5) والنوع.
  • يعرّف RFC 9562 مسبقًا نطاقات أسماء لأسماء DNS وعناوين URL ومعرّفات ISO OID والأسماء المميزة X.500. ويمكن أيضًا استخدام أي UUID خاص بك نطاقَ أسماء خاصًا.
  • تُقارن الأسماء بايتًا بايتًا: حالة الأحرف والمسافات والشرطة المائلة الأخيرة كلها تغيّر النتيجة، لذا وحّد صيغة الأسماء أولًا. ولأن الناتج قابل للتنبؤ، لا تستخدم UUID v5 سرًّا أبدًا.
إصدار UUID

إنشاء من 1 إلى 100 UUID دفعة واحدة

مساحة اسم DNS: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (افتراضي)

الاسم المراد تجزئته (مثل اسم النطاق، البريد الإلكتروني، إلخ)

حول UUIDs

UUID v1: UUIDs مستندة إلى الوقت تتضمن طابعًا زمنيًا وعنوان MAC للكمبيوتر الذي ينشئ UUID. مفيد عندما تحتاج إلى معرفة متى تم إنشاء UUID.

UUID v4: UUIDs يتم إنشاؤها عشوائيًا. هذا هو الإصدار الأكثر استخدامًا ويوفر تفردًا جيدًا مع الحد الأدنى من تسرب المعلومات.

UUID v5: UUIDs مستندة إلى الاسم باستخدام تجزئة SHA-1. بنفس مساحة الاسم والاسم، ستحصل دائمًا على نفس UUID. مفيد لإنشاء UUID حتمي.

مزيد من أدلة UUID