تولیدکننده 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

تولید UUID v4

UUIDهای تصادفی نسخه ۴ را با مولد امن اعداد تصادفی مرورگرتان بسازید؛ تک‌تک یا گروهی.

UUIDهای تولیدشده
بررسی UUID

تولید UUID تصادفی نسخه ۴

نسخه ۴ همان UUIDی است که بیشتر افراد وقتی می‌گویند «یک UUID» منظورشان است. نه برچسب زمانی دارد، نه آدرس دستگاه و نه نام؛ فقط ۱۲۲ بیت تصادفی. همین باعث می‌شود بتوان آن را هر جایی و بدون هماهنگی ساخت: در مرورگر، روی گوشی یا هم‌زمان روی هزار سرور.

این صفحه سازنده UUID را با نسخه ۴ انتخاب‌شده و نخستین UUID ساخته‌شده باز می‌کند.

ساختار یک UUID v4

به f47ac10b-58cc-4372-a567-0e02b2c3d479 نگاه کنید. 4 که گروه سوم را شروع می‌کند نسخه است. نخستین رقم گروه چهارم، اینجا a، همیشه یکی از 8، 9، a یا b است، چون دو بیت بالای آن variant را نگه می‌دارند. همه رقم‌های هگز دیگر تصادفی‌اند.

احتمال تکرار چقدر کم است؟

تعداد UUID ساخته‌شدهاحتمال وجود دست‌کم یک مورد تکراری
۱ میلیارد (۱۰ به توان ۹)حدود ۱ در ۱۰ به توان ۱۹
هزار میلیارد (۱۰ به توان ۱۲)حدود ۱ در ۱۰ به توان ۱۳
۲٫۷ × ۱۰ به توان ۱۸حدود ۵۰٪

این ارقام با فرض یک منبع تصادفی خوب به دست آمده‌اند. به همین دلیل این ابزار از crypto.getRandomValues استفاده می‌کند و نه Math.random که برای تضمین یکتایی طراحی نشده است.

v4 یا v7؟

UUIDهای تصادفی ردیف‌های جدید را در سراسر ایندکس پایگاه‌داده پخش می‌کنند و این می‌تواند درج (insert) را در جدول‌های بسیار بزرگ کند کند. اگر UUIDها کلید اصلی یک پایگاه‌داده پرترافیک‌اند، UUID v7 را در نظر بگیرید که با برچسب زمانی شروع می‌شود و مقدارهای جدیدش به ترتیب مرتب می‌شوند. برای توکن‌ها، شناسه‌های همبستگی (correlation ID) و نام فایل‌ها، v4 همچنان انتخاب ساده و پیش‌فرض است.

ساخت v4 در کد

  • JavaScript: crypto.randomUUID()
  • Python: import uuid; uuid.uuid4()
  • Java: UUID.randomUUID()
  • C#: Guid.NewGuid()
  • PostgreSQL 13+: gen_random_uuid()
  • شل لینوکس: cat /proc/sys/kernel/random/uuid

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

آموزش‌های مرتبط