تولیدکننده UUID
مقادیر UUID v4 تصادفی را برای استفاده در پایگاههای داده، APIها یا آزمایش تولید کنید.
نحوه استفاده از این تولیدکننده UUID
- 1 تعیین تعداد UUIDها
عددی بین ۱ تا ۱۰ را در فیلد تعداد UUIDها وارد کنید تا مشخص شود چه تعداد شناسه تولید شود.
- 2 تولید
این ابزار مقادیر تصادفی UUID v4 را با استفاده از منبع تصادفی رمزنگاریشده مرورگر تولید میکند.
- 3 کپی نتیجه
UUIDهای تولید شده را برای استفاده در دیتابیسها، دادههای API یا محیطهای تست کپی کنید.
این تولیدکننده UUID چگونه کار میکند
این ابزار با استفاده از تصادفیسازی مرورگر، UUIDهای نسخه ۴ تولید میکند. شناسههای UUID v4 مقادیر ۱۲۸ بیتی هستند که بیتهای خاصی برای نشان دادن نسخه (۴) و نوع استاندارد مورد استفاده در مشخصات مدرن UUID در آنها تنظیم شده است. این ابزار در صورت در دسترس بودن از crypto.randomUUID() و در غیر این صورت از crypto.getRandomValues() استفاده میکند؛ اگر هیچکدام از Web Crypto APIها در دسترس نباشند، ابزار به جای تولید شناسههای ضعیف، گزارش میدهد که تولید UUID پشتیبانی نمیشود.
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 اعداد تصادفی رمزنگاریشده مرورگر استفاده میکند.
- ✓ از Math.random() به عنوان جایگزین استفاده نمیکند؛ اگر Web Crypto در دسترس نباشد، مولد گزارش میدهد که تولید UUID پشتیبانی نمیشود.
- UUID v4 ترتیبی نیست و برای استفاده به عنوان کلید اصلی قابل مرتبسازی در پایگاههای دادهای که از درجهای مرتب بهره میبرند، مناسب نیست.
- RFC 9562 — شناسههای منحصربهفرد جهانی (UUIDs) — قالب UUID v4 و ساختار بیتهای تصادفی
- MDN — Crypto.randomUUID() — تولید UUID مرورگر با امنیت رمزنگاریشده
آشنایی با نسخهها و ساختار UUID
یک UUID (شناسه منحصربهفرد جهانی) مقداری ۱۲۸ بیتی است که به صورت ۳۲ رقم هگزادسیمال در پنج گروه (۸-۴-۴-۴-۱۲) نمایش داده میشود. در نسخه ۴، از دادههای تصادفی یا شبهتصادفی برای ۱۲۲ بیت استفاده میشود و بیتهای باقیمانده نسخه (۴) و نوع (Variant) را مشخص میکنند. احتمال تداخل بسیار ناچیز است (حدود ۱ در ۲^۱۲۲)، لذا UUIDها بدون هماهنگی مرکزی منحصربهفرد هستند. نسخههای دیگر شامل v1 (زمان و آدرس MAC)، v3 و v5 (هشهای مبتنی بر نام) و v7 (مرتبسازی زمانی) میباشند. نسخه ۴ به دلیل عدم نیاز به مرجع مرکزی و وضعیت مشترک برای تولید، محبوبترین گزینه برای سیستمهای توزیعشده است.
موارد استفاده UUID برای توسعهدهندگان
توسعهدهندگان از UUIDها به عنوان کلیدهای اصلی در پایگاههای داده، شناسههای همبستگی در ردیابی توزیعشده و شناسههای منحصربهفرد در دادههای ارسالی API استفاده میکنند. برخلاف اعداد صحیح افزایشی خودکار، UUIDها میتوانند در سمت کلاینت یا توسط هر سرویسی بدون تماس با پایگاه داده مرکزی تولید شوند که مقیاسپذیری افقی و معماریهای اول-آفلاین را ساده میکند. آنها برای سناریوهای ادغام که در آن چندین سیستم رکوردهایی ایجاد میکنند که بعداً ترکیب میشوند، ایدهآل هستند. UUIDها همچنین در پارامترهای وضعیت OAuth، امضاهای وبهوک و نامگذاری فایلها برای جلوگیری از تداخل ظاهر میشوند. هنگام تست، تولید UUIDها در لحظه از هاردکد کردن جلوگیری کرده و دادههای آزمایشی را بازتولیدپذیر میکند. چالش اصلی اندازه (۳۶ کاراکتر) و عدم قابلیت مرتبسازی در مقایسه با شناسههای ترتیبی است.
سوالات متداول
آیا این UUIDها منحصربهفرد هستند؟ +
برای تمام مقاصد عملی، بله. احتمال تولید یک شناسه تکراری به طرز نجومی کم است (۱ در ۲^۱۲۲).
آیا میتوانم از اینها در محیط عملیاتی استفاده کنم؟ +
بله، زمانی که محیط تصادفیسازی Web Crypto را فراهم کند. اگر Web Crypto در دسترس نباشد، ابزار به جای تولید شناسههایی با ظاهر امن از تصادفیسازی ضعیف، گزارش میدهد که تولید UUID پشتیبانی نمیشود.
از این به عنوان یک تخمین استفاده کنید و تصمیمات مهم را با یک متخصص واجد شرایط تأیید نمایید.
ورودیها در مرورگر باقی میمانند، مگر اینکه در آینده قابلیتی خلاف آن را صراحتاً اعلام کند.
ماشینحسابهای مرتبط
ماشینحسابهای مرتبط را برای مقایسه نتایج و فرضیات بررسی کنید.
تبدیلگر زمان Epoch
تبدیل برچسبهای زمانی یونیکس به تاریخهای UTC یا تبدیل تاریخ به ثانیههای اپوک.
ماشینحساب تبدیل مبنا
تبدیل یک عدد صحیح به باینری، اکتال، دسیمال و هگزادسیمال.
فرمتکننده JSON
اعتبارسنجی و مرتبسازی JSON همراه با تحلیل ساختار.