توليد قيم 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 سرًّا أبدًا.
إنشاء من 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 حتمي.