UUID مخفف Universally Unique Identifier است که یک مقدار طولانی 128 بیتی است که برای شناسایی اطلاعات در سیستم های کامپیوتری استفاده می شود. یک UUID تولید شده توسط مولد UUID طوری طراحی شده است که در تمام سیستم ها و در تمام زمان ها منحصر به فرد باشد. طول یک UUID 36 کاراکتر، از جمله خط فاصله، است و معمولاً با نماد هگزا دسیمال نشان داده می شود.
UUID در جاوا چیست؟
کلاس UUID در جاوا بخشی از بسته java.util است و روش هایی را برای تولید و دستکاری UUID ها ارائه می دهد. این یک کلاس رایج در جاوا برای تولید شناسه های منحصر به فرد است. با کمک کلاس UUID در جاوا، میتوانیم به راحتی UUIDهای تصادفی تولید کنیم، همچنین میتوانیم UUID از منابع مختلف مانند آرایههای بایت، رشتهها و مقادیر طولانی ایجاد کنیم. هر بار که ژنراتور فراخوانی می شود، می توانیم UUID های مختلف تولید شده را دریافت کنیم. این UUID های تولید شده منحصر به فرد هستند و به گونه ای طراحی شده اند که در سطح جهانی منحصر به فرد باشند، به این معنی که یک UUID یکسان دو بار توسط سیستم های مختلف تولید نمی شود. ما میتوانیم از UUIDهای تولید شده برای اهداف مختلفی مانند شناسه جلسه، کلیدهای پایگاه داده و سایر سناریوهایی که منحصربهفرد بودن مهم است استفاده کنیم.ایجاد UUID در جاوا
برای تولید UUID در جاوا از کلاس java.util.UUID استفاده می کنیم . کلاس java.util.UUID دو روش برای تولید UUID ارائه می کند: randomUUID() و nameUUIDFromBytes (byte[] name) . متد ()randomUUID یک UUID تصادفی تولید می کند. این روش به هیچ آرگومان نیاز ندارد و هر بار که فراخوانی می شود یک UUID تصادفی تولید می کند. در اینجا مثالی از نحوه استفاده از متد ()randomUUID آورده شده است :import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
// generating a random UUID
UUID uuid = UUID.randomUUID();
// print the UUID
System.out.println("Generated UUID: " + uuid);
}
}
خروجی
UUID ایجاد شده: d3ee2929-212b-4077-af84-694a0e69b8e1
متد nameUUIDFromBytes(byte[] name) یک UUID از یک آرایه بایت تولید می کند. این روش یک آرایه بایت را به عنوان آرگومان می گیرد و یک UUID بر اساس محتویات آرایه بایت تولید می کند. در اینجا مثالی از نحوه استفاده از متد nameUUIDFromBytes(byte[] name) آورده شده است :
import java.util.UUID;
public class UUIDExample {
public static void main(String[] args) {
// generating a UUID from a byte array
byte[] name = { 1, 2, 3, 4, 5 };
UUID uuid = UUID.nameUUIDFromBytes(name);
// print the UUID
System.out.println("Generated UUID: " + uuid);
}
}
خروجی
UUID ایجاد شده: 4d6579d4-c3e7-38a1-9246-017e903b2c33
ویژگی های UUID
UUID ها دارای ویژگی های زیر هستند:- طول: UUID ها 128 بیت هستند، به این معنی که دارای 16 بایت داده هستند. این طول آنها را برای استفاده در سیستم های کامپیوتری مناسب می کند زیرا می توان آنها را به طور موثر ذخیره کرد.
- منحصر به فرد بودن: احتمال یکسان بودن دو UUID بسیار کم است. احتمال برخورد حدود 1 در 2^128 است که عدد بسیار کمی است.
- تصادفی بودن: UUID با استفاده از الگوریتمی تولید می شود که تصادفی بودن را تضمین می کند. این تصادفی بودن، پیشبینی UUIDهای تولید شده را برای هر کسی دشوار میکند.
- نسخه: UUID ها به نسخه هایی تقسیم می شوند که هر نسخه از الگوریتم متفاوتی برای تولید UUID استفاده می کند. رایج ترین نسخه های مورد استفاده نسخه 1 و نسخه 4 هستند. UUID های نسخه 1 با استفاده از زمان فعلی و آدرس MAC رایانه ای که UUID را تولید می کند، تولید می شوند. UUID های نسخه 4 با استفاده از اعداد تصادفی تولید می شوند.
طول یک UUID
یک UUID یک مقدار 128 بیتی است که با رشته ای از 36 کاراکتر نشان داده می شود. این رشته شامل 32 رقم هگزا دسیمال است که به گروه های 8، 4، 4، 4 و 12 رقمی تقسیم می شوند که با خط فاصله از هم جدا شده اند. در اینجا یک مثال از یک رشته UUID آمده است:123e4567-e89b-12d3-a456-426655440000
UUID مثال: در اینجا یک UUID مثال است که با استفاده از متد randomUUID() تولید شده است :
d3ee2929-212b-4077-af84-694a0e69b8e1
این UUID شامل 32 رقم هگزا دسیمال است که به گروه های 8، 4، 4، 4 و 12 رقمی تقسیم می شود که با خط فاصله از هم جدا شده اند. در مثال UUID بالا وقتی در مورد کلاس UUID در جاوا صحبت می کنیم، اصطلاح تولید UUID به فرآیند ایجاد یک UUID جدید با استفاده از کلاس java.util.UUID اشاره دارد . این فرآیند شامل فراخوانی یکی از متدهای کارخانه ایستا کلاس UUID مانند randomUUID() یا nameUUIDFromBytes (byte[]) است . هنگامی که یکی از این متدها را فراخوانی می کنیم، کلاس UUID در جاوا یک UUID جدید ایجاد می کند و آن را به ما باز می گرداند. این UUID های تولید شده می توانند در صورت نیاز در برنامه ما استفاده شوند.
GO TO FULL VERSION