نحوه استفاده
- برای شناسههای تصادفی نسخه ۴ یا برای شناسههای مرتبشده بر اساس زمان ایجاد، نسخه ۷ را انتخاب کنید.
- تعداد مورد نیاز را تعیین کنید (۱ تا ۱۰۰۰) و قالب را انتخاب کنید: حروف بزرگ، با یا بدون خط تیره، با یا بدون آکولاد.
- یک UUID را با دکمه همان مورد کپی کنید، همه را کپی کنید یا آنها را بهصورت فایل متنی با یک UUID در هر خط دانلود کنید.
- برای بررسی یک UUID موجود، آن را در بخش «بررسی یک UUID» جایگذاری کنید.
نحوه کار
UUID (که GUID نیز نامیده میشود) یک شناسه ۱۲۸ بیتی است که معمولاً بهصورت ۳۲ رقم هگزادسیمال در پنج گروه 8-4-4-4-12 نوشته میشود. اولین رقم گروه سوم نسخه را نشان میدهد و اولین رقم گروه چهارم واریانت را مشخص میکند (برای UUIDهای استاندارد 8، 9، a یا b). قالب در RFC 9562 تعریف شده است که در سال 2024 جایگزین RFC 4122 شد.
UUIDهای نسخه 4 تصادفی هستند. این ابزار در صورت وجود از crypto.randomUUID و در غیر این صورت از crypto.getRandomValues استفاده میکند؛ هر دو از نظر رمزنگاری امن هستند و این ابزار هرگز از Math.random استفاده نمیکند. با ۱۲۲ بیت تصادفی، احتمال برخورد دو UUID نسخه 4 ناچیز است: برای داشتن ۵۰٪ احتمال حتی یک تکرار، باید حدود 2.7 × 10^18 عدد از آنها تولید کنید.
UUIDهای نسخه 7 با یک برچسب زمانی Unix ۴۸ بیتی بر حسب میلیثانیه شروع میشوند؛ پس از آن نسخه، یک میدان ۱۲ بیتی و ۶۲ بیت تصادفی قرار دارند. چون زمان در ابتدا میآید، مقادیر v7 به ترتیب ایجاد مرتب میشوند؛ این موضوع ایندکسهای پایگاه داده را فشرده نگه میدارد و درج را نسبت به کلیدهای تصادفی v4 سریعتر میکند. وقتی چند UUID نسخه 7 در یک میلیثانیه ساخته شوند، این ابزار از میدان ۱۲ بیتی بهعنوان شمارنده استفاده میکند (روش توصیفشده در RFC 9562، بخش 6.2)؛ بنابراین یک دسته همیشه بهصورت کاملاً صعودی مرتب میشود. توجه کنید که UUID نسخه 7 زمان ایجادش را آشکار میکند.
ابزار بررسی، UUIDها را با یا بدون خط تیره، با حروف بزرگ یا کوچک، داخل آکولاد یا با پیشوند urn:uuid: میپذیرد. نسخه و واریانت را گزارش میکند، UUIDهای ویژه nil و max را تشخیص میدهد و زمان ایجاد نهفته را برای نسخههای 1، 6 و 7 نشان میدهد.
نمونهها
کلیدهای اصلی برای یک جدول جدید
۱۰۰ UUID نسخه 7 برای دادههای آزمایشی تولید کنید؛ مانند 0192b3c4-5d6e-7f80-9a1b-2c3d4e5f6a7b. این UUIDها بر اساس زمان ایجاد مرتب میشوند؛ بنابراین ردیفهایی که دیرتر درج میشوند کلیدهای بزرگتری میگیرند، مانند یک ستون auto-increment.
یک GUID برای پروژه Windows یا .NET
گزینههای حروف بزرگ و آکولاد را فعال کنید تا قالب سبک رجیستری {3F2504E0-4F89-41D3-9A0C-0305E82C3301} را دریافت کنید که در فایلهای پروژه Visual Studio، شناسههای کلاس COM و رجیستری ویندوز استفاده میشود.
بررسی یک شناسه از لاگ
مقدار 018f6e2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f را در ابزار بررسی قرار دهید. نسخه 7 و واریانت استاندارد را گزارش میکند و ۱۲ رقم اول را بهصورت یک برچسب زمانی در مه ۲۰۲۴ رمزگشایی میکند که زمان ایجاد رکورد را به شما میگوید.
پرسشهای متداول
آیا باید از UUID نسخه ۴ استفاده کنم یا نسخه ۷؟
وقتی شناسهها نباید چیزی را فاش کنند، مانند توکنهای عمومی یا نام فایلها، از نسخه ۴ استفاده کنید. برای کلیدهای پایگاهداده و شناسههای رویداد که ترتیب زمانی عملکرد ایندکس را بهبود میدهد، از نسخه ۷ استفاده کنید. هر دو بهاندازه کافی بیت تصادفی دارند که تداخل نگرانی عملی محسوب نمیشود.
آیا این UUIDها واقعاً یکتا هستند؟
آنها با هیچ فهرستی مقایسه نمیشوند، اما توسط یک مولد اعداد تصادفی امن رمزنگاریشده تولید میشوند؛ بنابراین احتمال تکرار آنقدر کم است که در سیستمهای واقعی میتوان نادیدهاش گرفت. مقادیر نسخه ۷ زمان فعلی را نیز شامل میشوند.
آیا UUID همان GUID است؟
بله. GUID (شناسه یکتای سراسری) نام مایکروسافت برای همان قالب ۱۲۸ بیتی است. GUIDها معمولاً با حروف بزرگ و داخل آکولاد نمایش داده میشوند که میتوانید آن را اینجا فعال کنید.
آیا میتوانم از UUID بهعنوان رمز عبور یا توکن مخفی استفاده کنم؟
یک UUID نسخه ۴ دارای ۱۲۲ بیت تصادفی است که حدس زدن آن دشوار است؛ اما UUIDها بهعنوان شناسه طراحی شدهاند، نه بهعنوان راز، و اغلب در لاگها و URLها ظاهر میشوند. برای کلیدهای API یا لینکهای بازیابی، از یک مولد توکن تصادفی اختصاصی استفاده کنید.
آیا مهر زمانی نسخه ۷ از ساعت رایانه من استفاده میکند؟
بله. از ساعت دستگاه شما بر حسب میلیثانیه UTC خوانده میشود. اگر ساعت اشتباه باشد، زمان ثبتشده در شناسه اشتباه خواهد بود، اما شناسههای موجود در یک دسته همچنان به ترتیب افزایشی هستند.
حریم خصوصی
UUIDها در مرورگر شما و با مولد اعداد تصادفی رمزنگاریشده آن تولید میشوند. آنها به سرور ارسال نمیشوند، ذخیره نمیشوند و ثبت نمیشوند؛ بنابراین هیچکس دیگری مقادیری را که ایجاد یا بررسی میکنید نمیبیند.