تولیدکننده و اعتبارسنج UUID

UUIDهای v4 تصادفی رمزنگاری‌شده یا v7 قابل‌مرتب‌سازی بسازید، یکی یا هزار تا در هر بار، و هر UUID یا GUID را بررسی کنید تا نسخه و timestamp درون آن را ببینید.

اجرا در مرورگر شمابدون ثبت‌نامبدون آپلود

UUIDهای تولیدشده

نحوهٔ استفاده از تولیدکنندهٔ UUID

  1. برای یک شناسهٔ کاملاً تصادفی v4 و برای شناسه‌هایی که بر اساس زمان ایجاد مرتب می‌شوند v7 را انتخاب کنید.
  2. تعداد موردنیاز را (تا 1,000) تنظیم کنید و روی تولید کلیک کنید.
  3. در صورت تمایل، حروف بزرگ، حذف خط تیره‌ها یا قرار دادن در آکولاد برای GUIDهای به سبک مایکروسافت را انتخاب کنید.
  4. روی UUID بزرگ کلیک کنید تا کپی شود، یا برای یک دسته از کپی همه / دانلود ‎.txt استفاده کنید.
  5. هر UUID را در بخش بررسی جای‌گذاری کنید تا اعتبارسنجی شود و نسخه، واریانت و timestamp آن را ببینید.

UUID چیست؟

UUID (Universally Unique Identifier) که در پلتفرم‌های مایکروسافت GUID نامیده می‌شود، یک مقدار 128 بیتی است که به‌صورت 32 رقم هگز در پنج گروه نوشته می‌شود: 8-4-4-4-12. این قالب در RFC 9562 تعریف شده است که در 2024 جایگزین RFC 4122 شد. یک رقم نسخه را کدگذاری می‌کند (سیزدهمین رقم هگز) و بیت‌های بالای رقم هفدهم واریانت را.

UUID v4 در برابر UUID v7

v4v7
محتوا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 امن است؟
بله. آن‌ها به‌صورت محلی با مولد تصادفی امن Web Crypto API تولید می‌شوند و از RFC 9562 پیروی می‌کنند. هیچ چیزی به سرور ارسال یا توسط آن ثبت نمی‌شود.
تفاوت UUID و GUID چیست؟
هر دو یک چیزند. GUID نامی است که مایکروسافت به کار می‌برد و اغلب با حروف بزرگ و داخل آکولاد نوشته می‌شود، مانند {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. از گزینه‌های بالا برای تولید این قالب استفاده کنید.
آیا می‌توانم زمان ایجاد را از یک UUID به دست آورم؟
فقط برای نسخه‌های مبتنی بر زمان. v7 میلی‌ثانیه‌های یونیکس را در 48 بیت اول خود ذخیره می‌کند و v1 و v6 یک timestamp با دقت 100 نانوثانیه دارند. یکی را در بخش بررسی جای‌گذاری کنید تا تاریخ را ببینید. v4 هیچ اطلاعات زمانی ندارد.
آیا از UUID به‌عنوان کلید اصلی پایگاه داده استفاده کنم؟
برای سیستم‌های توزیع‌شده و شناسه‌های عمومی خوب کار می‌کنند. v7 را به v4 ترجیح دهید تا ردیف‌های جدید در انتهای ایندکس قرار گیرند، و آن‌ها را در ستون بومی uuid یا باینری 16 بایتی ذخیره کنید، نه به‌صورت رشتهٔ 36 کاراکتری.
nil UUID چیست؟
مقدار تمام‌صفر 00000000-0000-0000-0000-000000000000 که به‌عنوان جای‌نگهدار به معنای «بدون UUID» استفاده می‌شود. RFC 9562 همچنین max UUID تمام‌f را تعریف می‌کند.

ابزارهای مرتبط