UUID دارای چندین نسخه است که هر کدام ویژگیهای متفاوتی دارند:
• v1: مبتنی بر زمان و شناسه گره، منظم اما ممکن است اطلاعات را فاش کند
• v3: مبتنی بر نام و نامفضا، با استفاده از هش MD5
• v4: کاملاً تصادفی، پرکاربردترین نسخه
• v5: مبتنی بر نام و نامفضا، با استفاده از هش SHA-1، امنتر از v3
• v6: نسخه بهبودیافته v1، بخش زمان به ترتیب بزرگترین بایت، مناسبتر برای مرتبسازی
• v7: نسخه جدید مبتنی بر زمانمهر یونیکس، ترکیبی از ترتیب زمانی و تصادفی
بر اساس سناریوی استفاده، مناسبترین نسخه را انتخاب کنید:
• نیاز به امنیت: v4 (تصادفی) یا v5 (نام مبتنی بر SHA-1) را انتخاب کنید
• نیاز به مرتبسازی: v6 یا v7 (مبتنی بر زمان و آسان برای مرتبسازی) را انتخاب کنید
• نیاز به قطعیت: v3 یا v5 (ورودی یکسان خروجی یکسان تولید میکند) را انتخاب کنید
• نیاز به عملکرد: v1 (سرعت تولید بالا) را انتخاب کنید
• مقادیر ویژه: NIL (همه صفر) یا MAX (همه F) برای موارد مرزی
UUID v4 کاملاً تصادفی است و برای اکثر سناریوهای کاربردی مناسب است. v3 و v5 قطعی هستند، نام و نامفضای یکسان همیشه UUID یکسانی تولید میکنند، مناسب برای مواردی که نیاز به نگاشت سازگار دارند. v1، v6 و v7 شامل اطلاعات زمانی هستند و در شرایط خاص دارای ترتیب هستند.
v1، v6 و v7 همگی شامل اطلاعات زمانی هستند اما به روشهای مختلف پردازش میشوند. v6 مشکل مرتبسازی زمانی v1 را بهبود بخشیده است، v7 از زمانمهر یونیکس استفاده میکند تا ترتیب زمانی سادهتری ارائه دهد. اگر نیاز به UUID دارید که بر اساس زمان تولید مرتبشده باشد، v6 و v7 انتخابهای بهتری هستند.
v1 ممکن است زمان تولید و اطلاعات گره (آدرس MAC) را فاش کند. v4 کاملاً تصادفی است و بهترین انتخاب برای سناریوهای حساس به حریم خصوصی است. v3 از هش MD5 استفاده میکند که امنیت کمتری نسبت به SHA-1 در v5 دارد. NIL و MAX مقادیر ثابتی هستند و نباید در سناریوهای امنیتی که نیاز به یکتایی دارند استفاده شوند.
UUID عمدتاً در سناریوهایی استفاده میشود که نیاز به شناسههای یکتا در سطح جهانی دارند: سیستمهای توزیعشده، کلیدهای اصلی پایگاه داده، شناسههای جلسه، نام فایلها، توکنهای API و غیره. انتخاب نسخه مناسب میتواند عملکرد، امنیت و سازماندهی دادهها را بهینه کند.