تولیدکننده UUID
مقادیر UUID v4 تصادفی را برای استفاده در پایگاههای داده، APIها یا آزمایش تولید کنید.
نحوه استفاده از این تولیدکننده UUID
- تعیین تعداد UUIDها
عددی بین ۱ تا ۱۰ را در فیلد تعداد UUIDها وارد کنید تا مشخص شود چه تعداد شناسه تولید شود.
- تولید
این ابزار مقادیر تصادفی UUID v4 را با استفاده از منبع تصادفی رمزنگاریشده مرورگر تولید میکند.
- کپی نتیجه
UUIDهای تولید شده را برای استفاده در دیتابیسها، دادههای API یا محیطهای تست کپی کنید.
این تولیدکننده UUID چگونه کار میکند
این ابزار UUIDهای نسخه ۴ را با استفاده از تصادفیسازی مرورگر تولید میکند. شناسههای UUID v4 مقادیر ۱۲۸ بیتی هستند که بیتهای خاصی برای نشان دادن نسخه (۴) و نوع استاندارد در آنها تنظیم شده است. در صورت در دسترس بودن Web Crypto، تصادفیسازی از نظر رمزنگاری قوی است؛ در غیر این صورت، ابزار به یک مولد ضعیفتر بازمیگردد.
UUID v4 = xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx (که در آن y ∈ {8,9,a,b}) خروجی نمونه: 550e8400-e29b-41d4-a716-446655440000
تولید ۱ UUID یک مقدار واحد مانند a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d ایجاد میکند. عدد ۴ در گروه سوم نشاندهنده نسخه ۴ است.
تولید ۳ UUID سه مقدار متمایز برمیگرداند که هر کدام دارای ۱۲۲ بیت تصادفی هستند. از آنها به عنوان کلیدهای اصلی برای رکوردهای تست یا منابع API استفاده کنید.
- ✓ در صورت در دسترس بودن، از API اعداد تصادفی رمزنگاریشده مرورگر استفاده میکند.
- ✓ در محیطهای بدون Web Crypto، به Math.random() بازمیگردد که برای سهولت مناسب است اما برای استفاده با امنیت بالا توصیه نمیشود.
- UUID v4 ترتیبی نیست و برای استفاده به عنوان کلید اصلی قابل مرتبسازی در پایگاههای دادهای که از درجهای مرتب بهره میبرند، مناسب نیست.
آشنایی با نسخهها و ساختار UUID
یک UUID (شناسه منحصربهفرد جهانی) مقداری ۱۲۸ بیتی است که به صورت ۳۲ رقم هگزادسیمال در پنج گروه (۸-۴-۴-۴-۱۲) نمایش داده میشود. در نسخه ۴، از دادههای تصادفی یا شبهتصادفی برای ۱۲۲ بیت استفاده میشود و بیتهای باقیمانده نسخه (۴) و نوع (Variant) را مشخص میکنند. احتمال تداخل بسیار ناچیز است (حدود ۱ در ۲^۱۲۲)، لذا UUIDها بدون هماهنگی مرکزی منحصربهفرد هستند. نسخههای دیگر شامل v1 (زمان و آدرس MAC)، v3 و v5 (هشهای مبتنی بر نام) و v7 (مرتبسازی زمانی) میباشند. نسخه ۴ به دلیل عدم نیاز به مرجع مرکزی و وضعیت مشترک برای تولید، محبوبترین گزینه برای سیستمهای توزیعشده است.
موارد استفاده UUID برای توسعهدهندگان
توسعهدهندگان از UUIDها به عنوان کلیدهای اصلی در پایگاههای داده، شناسههای همبستگی در ردیابی توزیعشده و شناسههای منحصربهفرد در دادههای ارسالی API استفاده میکنند. برخلاف اعداد صحیح افزایشی خودکار، UUIDها میتوانند در سمت کلاینت یا توسط هر سرویسی بدون تماس با پایگاه داده مرکزی تولید شوند که مقیاسپذیری افقی و معماریهای اول-آفلاین را ساده میکند. آنها برای سناریوهای ادغام که در آن چندین سیستم رکوردهایی ایجاد میکنند که بعداً ترکیب میشوند، ایدهآل هستند. UUIDها همچنین در پارامترهای وضعیت OAuth، امضاهای وبهوک و نامگذاری فایلها برای جلوگیری از تداخل ظاهر میشوند. هنگام تست، تولید UUIDها در لحظه از هاردکد کردن جلوگیری کرده و دادههای آزمایشی را بازتولیدپذیر میکند. چالش اصلی اندازه (۳۶ کاراکتر) و عدم قابلیت مرتبسازی در مقایسه با شناسههای ترتیبی است.
سوالات متداول
آیا این UUIDها منحصربهفرد هستند؟
برای تمام مقاصد عملی، بله. احتمال تولید یک شناسه تکراری به طرز نجومی کم است (۱ در ۲^۱۲۲).
آیا میتوانم از اینها در محیط عملیاتی استفاده کنم؟
بله، در صورتی که محیط تصادفیسازی Web Crypto را فراهم کند. اگر صفحه بدون این API اجرا شود و به Math.random() بازگردد، خروجی را به عنوان شناسههای معمولی و نه با امنیت بالا در نظر بگیرید.