تولیدکننده و اعتبارسنج UUID
UUIDهای v4 تصادفی رمزنگاریشده یا v7 قابلمرتبسازی بسازید، یکی یا هزار تا در هر بار، و هر UUID یا GUID را بررسی کنید تا نسخه و timestamp درون آن را ببینید.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از تولیدکنندهٔ UUID
- برای یک شناسهٔ کاملاً تصادفی v4 و برای شناسههایی که بر اساس زمان ایجاد مرتب میشوند v7 را انتخاب کنید.
- تعداد موردنیاز را (تا 1,000) تنظیم کنید و روی تولید کلیک کنید.
- در صورت تمایل، حروف بزرگ، حذف خط تیرهها یا قرار دادن در آکولاد برای GUIDهای به سبک مایکروسافت را انتخاب کنید.
- روی UUID بزرگ کلیک کنید تا کپی شود، یا برای یک دسته از کپی همه / دانلود .txt استفاده کنید.
- هر UUID را در بخش بررسی جایگذاری کنید تا اعتبارسنجی شود و نسخه، واریانت و timestamp آن را ببینید.
UUID چیست؟
UUID (Universally Unique Identifier) که در پلتفرمهای مایکروسافت GUID نامیده میشود، یک مقدار 128 بیتی است که بهصورت 32 رقم هگز در پنج گروه نوشته میشود: 8-4-4-4-12. این قالب در RFC 9562 تعریف شده است که در 2024 جایگزین RFC 4122 شد. یک رقم نسخه را کدگذاری میکند (سیزدهمین رقم هگز) و بیتهای بالای رقم هفدهم واریانت را.
UUID v4 در برابر UUID v7
| v4 | v7 | |
|---|---|---|
| محتوا | 122 بیت تصادفی | timestamp میلیثانیهای یونیکس 48 بیتی + 74 بیت تصادفی |
| ترتیب مرتبسازی | تصادفی | زمانی |
| ایندکس پایگاه داده | درجهای تصادفی ایندکسهای B-tree را تکهتکه میکنند | به انتها اضافه میشود، برای ایندکسها بسیار مناسبتر |
| آشکار کردن زمان ایجاد | خیر | بله |
از v7 برای کلیدهای اصلی پایگاه داده و شناسههای رویداد استفاده کنید که ترتیب درج در آنها مهم است. وقتی شناسه نباید زمان ایجاد چیزی را لو دهد، از v4 استفاده کنید. این تولیدکننده شناسههای v7 را حتی وقتی تعداد زیادی در یک میلیثانیه ساخته شوند، بهطور اکید صعودی نگه میدارد.
چقدر یکتا هستند؟
با 122 بیت تصادفی، باید حدود 2.7 کوینتیلیون UUID v4 بسازید تا احتمال یک تصادم به 50٪ برسد. این صفحه از مولد اعداد تصادفی امن رمزنگاری مرورگر (crypto.getRandomValues) استفاده میکند، هرگز از Math.random().
تولید UUID در کد
// JavaScript (browsers, Node 19+)
crypto.randomUUID()
# Python
import uuid; uuid.uuid4()
-- PostgreSQL 13+
SELECT gen_random_uuid();پرسشهای متداول
آیا استفاده از این UUIDها در production امن است؟
تفاوت UUID و GUID چیست؟
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}. از گزینههای بالا برای تولید این قالب استفاده کنید.آیا میتوانم زمان ایجاد را از یک UUID به دست آورم؟
آیا از UUID بهعنوان کلید اصلی پایگاه داده استفاده کنم؟
uuid یا باینری 16 بایتی ذخیره کنید، نه بهصورت رشتهٔ 36 کاراکتری.nil UUID چیست؟
00000000-0000-0000-0000-000000000000 که بهعنوان جاینگهدار به معنای «بدون UUID» استفاده میشود. RFC 9562 همچنین max UUID تمامf را تعریف میکند.