UUID هو رقم تعريف فريد بطول 128 بت يستخدم على نطاق واسع في نظام الكمبيوتر. يتكون من أرقام سداسية مفصولة بأربعة شرطات. في هذا القسم سنناقش ما هو UUID و كيفية إنشاء UUID (الإصدار 4) بشكل عشوائي في Java .
UUID
UUID تمثل معرف فريد عالميًا . يتم توحيد UUIDs بواسطة مؤسسة البرمجيات المفتوحة (OSF). إنها جزء من بيئة الحوسبة التوزيعية (DCE). UUID هو رقم فريد يتكون من 36 حرفًا (128 بت). ومن المعروف أيضا باسم أ المعرف الفريد العالمي (GUID).
يعتمد استخدام UUID على الموقف وحالات الاستخدام والتعقيد والشروط. بعض استخدامات UUID هي:
- يتم استخدامه لإنشاء URN فريد (أسماء الموارد الموحدة).
- ويمكن استخدامه أيضًا لإنشاء معرفات المعاملات.
- تستخدم على نطاق واسع في تطبيق التشفير.
- في تطبيق الويب يمكن استخدامه لإنشاء معرفات الجلسة.
أنواع UUID
هناك أربعة أنواع من UUIDs:
- UUID المستند إلى الوقت (الإصدار 1)
- UUID لأمان DCE (الإصدار 2)
- UUID المستند إلى الاسم (الإصدار 3 و5)
- UUID الذي تم إنشاؤه عشوائيًا (الإصدار 4)
متغيرات UUID
هناك العديد من المتغيرات لـ UUID ولكن ملح ليش البديل يستخدم على نطاق واسع. تخطيط البديل 2 أي. ملح ليش على النحو التالي:
تتكون MSBs من الحقول غير الموقعة التالية:
جافا حاول الصيد
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
النسخة 0x000000000000F000
0x0000000000000FFF time_hi
تتكون LSBs من الحقول غير الموقعة التالية:
0xC00000000000000 البديل
وظائف السلسلة في جافا
0x3FFF000000000000 Clock_seq
عقدة 0x0000FFFFFFFFFFFF
يحتوي الحقل المتغير على قيمة تحدد تخطيط UUID. التخطيط الذي تمت مناقشته أعلاه صالح فقط للمتغير 2.
فئة جافا UUID
من أجل توليد UUID ، توفر لغة برمجة Java فئة UUID. الطبقة تنتمي إلى java.util طَرد. يقوم بتوسيع فئة الكائن وتنفيذ قابل للتسلسل و قابلة للمقارنة واجهه المستخدم. يقوم الفصل بإنشاء UUID غير قابل للتغيير يمثل قيمة 128 بت.
باوانديب راجان
طرق فئة UUID لجافا
طُرق | وصف |
---|---|
تسلسل الساعة () | تقوم بإرجاع قيمة تسلسل الساعة المرتبطة بهذا UUID المحدد. |
قارن ب() | تقارن الطريقة UUID مع UUID المحدد. |
يساوي () | تقارن الطريقة هذا الكائن بالكائن المحدد. |
من سلسلة () | يقوم بإنشاء UUID من تمثيل السلسلة. |
الحصول علىLeastSignificantBits() | تقوم بإرجاع 64 بت الأقل أهمية من قيمة 128 بت الخاصة بـ UUID. |
getMostSignificantBits() | تقوم بإرجاع أهم 64 بت من قيمة 128 بت الخاصة بـ UUID. |
رمز التجزئة () | تقوم بإرجاع رمز التجزئة لهذا UUID. |
nameUUIDFromBytes() | يقوم باسترداد UUID الإصدار 3 (المعتمد على الاسم) استنادًا إلى صفيف البايت المحدد. |
العقدة() | تقوم بإرجاع قيمة العقدة المرتبطة بـ UUID المحدد. |
عشوائيUUID() | تقوم بإرجاع UUID الذي تم إنشاؤه بشكل عشوائي. |
الطابع الزمني () | تقوم بإرجاع قيمة الطابع الزمني المرتبطة بهذا UUID المحدد. |
إلى سلسلة() | تقوم بإرجاع كائن سلسلة يمثل UUID هذا. |
البديل () | يتم استخدامه للحصول على المتغير المرتبط بـ UUID المحدد. |
إصدار() | يمكننا الحصول على رقم الإصدار المرتبط بـ UUID المحدد. |
إنشاء UUID
ينشئ المثال التالي UUID عشوائيًا.
UUIDexample.java
import java.util.UUID; public class UUIDExample { public static void main(String args[]) { //generates random UUID UUID uuid=UUID.randomUUID(); System.out.println(uuid); } }
انتاج:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
تحويل من سلسلة إلى UUID
StringToUUIDexample.java
import java.util.UUID; public class StringtoUUIDExample { public static void main(String args[]) { //randomly generates a UUID UUID uuid = UUID.randomUUID(); System.out.println('Randomly Generated UUID: '+uuid); //converts the randomly generated UUID into String String uuidAsString = uuid.toString(); System.out.println('UUID as String: '+uuidAsString); //generates a UUID from the String UUID sameUuid = UUID.fromString(uuidAsString); System.out.println('UUID from String: '+sameUuid); //compares UUID generated from the string with the randomly generated UUID System.out.println(sameUuid.equals(uuid)); } }
انتاج:
Randomly Generated UUID: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID as String: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID from String: fe8a03d7-6495-4231-9843-8ee2f5282620 true