شناسه منحصربهفرد جهانی
یک شناسه منحصر به فرد جهانی (انگلیسی: Universally unique identifier) (مخفف: UUID) یک عدد ۱۲۸-بیتی است که برای شناسایی اطلاعات در سیستمهای کامپیوتری استفاده میشود. بجای این اصطلاح، اصطلاح شناسه منحصر به فرد عمومی (انگلیسی: Globally unique identifier) (مخفف: GUID) نیز به کار میرود.
اگر UUIDها طبق روشهای استاندارد تولید شوند، بدون اینکه به یک نهاد ثبت کننده مرکزی یا هماهنگی با سایر تولیدکنندههای UUID برای تأیید یکتایی نیاز داشته باشند، عملاً یکتا خواهند بود. این برخلاف بیشتر روشهای دیگر است. گرچه احتمال اینکه یک UUID تکراری باشد، صفر نیست، اما آنقدر به صفر نزدیک است که میتوان از آن چشم پوشی کرد.
بنابراین هر کسی میتواند یک UUID ایجاد کند و از آن برای شناسایی «چیزی» استفاده کند و اطمینان داشته باشد که UUIDای که تولید کردهاست با UUIDهایی که قبلاً تولید شده یا بعداً تولید خواهد شد، تداخلی ندارد. اطلاعاتی که بوسیله UUIDها توسط موجودیتهای مستقل برچسب گذاری شدهاند میتوانند بعداً با یکدیگر اذغام شده و در یک پایگاه داده قرار گیرند، بدون آنکه نیاز به از بردن تداخلهای بین شناسهها شود.
کاربرد UUIDها و GUIDها گستردهاست و بسیاری از پلتفرمهای محاسباتی از امکاناتی برای تولید آنها و پارس کردن نمایش متنی UUIDها پشتیبانی میکنند.
قالب
در شیوه متعارف نمایش متنی، شانزده بایت یک شناسه UUID توسط ۳۲ رقم هگزادسیمال (مبنای ۱۶) که در ۵ گروه که توسط خط فاصله از یکدیگر جدا شدهاند در قالب 8-4-4-4-12
که در مجموع ۳۶ کاراکتر (۳۲ کاراکتر الفبایی و چهار خط فاصله) را تشکیل میدهد، نشان داده میشوند. به عنوان مثال:
123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
چهار بیت از رقمی که با M
نشان داده شدهاست، نسخه UUID و رقمی که با N
نشان داده شدهاست، نوع UUID را مشخص میکند. در این مثال M، یک و N مقدار a (10 ده دهی) را نشان میدهد، به این معنی است که نوع UUID از نوع ۱، و نسخه آن نیز ۱ میباشد که طبق DCE/RFC4122 نوع UUID براساس زمان است.
قالب متعارف ۸-۴-۴-۴-۱۲ براساس "طرح بندی رکورد" برای UUIDهای ۱۶ بایتی است:
نام | طول (بایت) | طول (ارقام هگزادسیمال) | محتوا |
---|---|---|---|
time_low | ۴ | ۸ | عدد صحیحی که ۳۲ بیت پایینی زمان است |
time_mid | ۲ | ۴ | عدد صحیحی که ۱۶ بیت میانی زمان است |
time_hi_and_version | ۲ | ۴ | ۴ بیت پرارزش، نسخه را مشخص کرده و ۱۲ بیت دیگر ۱۲ بیت بالایی زمان است |
clock_seq_hi_and_res clock_seq_low | ۲ | ۴ | بیتهای ۱ تا ۳ پرارزش نوع UUID و ۱۳ تا ۱۵ بیت باقی مانده دنباله ساعت است (clock sequence) |
node | ۶ | ۱۲ | شناسه گره ۴۸ بیتی |
این فیلدها مربوط به نسخههای ۱ و 2 UUID که مبتنی بر زمان است، میباشد اما همان قالب ۸-۴-۴-۴-۱۲ برای همه UUIDها استفاده میشود.
GUIDهای مایکروسافت گاهی با استفاده از دوابرو نمایش داده میشوند:
{123e4567-e89b-12d3-a456-426655440000}
این قالب را نباید با "قالب رجیستری ویندوز" اشتباه شود.[1]
RFC 4122 فضای نام Uniform Resource Name (مخفف: URN) برای UUIDها تعریف میکند. یک UUID به عنوان یک URN به شکل زیر است:
urn
:uuid:123e4567-e89b-12d3-a456-426655440000
کدبندی
کدبندی دودویی (انگلیس: binary encoding) UUIDها در سامانههای مختلف، متفاوت است. بسیاری از سامانهها UUID را به صورت کامل در قالب big-endian کدبندی میکنند.
برای مثال 00112233-4455-6677-8899-aabbccddeeff
به صورت بایتهای 00 11 22 33
44 55
66 77
88 99
aa bb cc dd ee ff
کدبندی میشود.
سامانههای دیگر به ویژه مارشال UUIDها در مایکروسافت در کتابخانههای COM/OLE از قالب mixed-endian استفاده میکنند که در آن ۳ مؤلفه اول UUID به صورت little-endian و دو مؤلفه آخری به صورت big-endian کدبندی میشوند.
برای مثال 00112233-4455-6677-8899-aabbccddeeff
به صورت بایتهای 33 22 11 00
55 44
77 66
88 99
aa bb cc dd ee ff
کدبندی میشود.
گونهها
یکی از گونههای تعریف شده توسط RFC 4122, نوع ۰ (نشان داده شده با یک بیت الگوی 0xxx N=0..7
) برای سازگاری با سیستم قدیمی circa 1988 که اکنون منسوخ شدهاست و قالب UUID 1.5 سامانه محاسبات شکبه ای آپولو (انگلیسی: Apollo Network Computing System) تعریف شدهاست. در این قالب، ۶ بایت اول زمان با طول ۴۸ بیت است (تعداد واحدهای ۴ میلی ثانیه از ۱ ژانیویه 1980 UTC). هفت بایت آخر یک شناسه میزبان (انگلیسی: host ID) 56-بیتی است. گرچه در جزئیات متفاوتند، شباهت گونه ۱ با گونه ۰ کاملاً مشهود است.[2]
جستارهای وابسته
- حمله تولد
- یوآرآی
منابع
- "Registry Keys and Entries for a Type 1 Online Store". Microsoft Developer Network. Microsoft.
پیوند به بیرون
- Technical Note TN2166 Secrets of the GPT – Mac Developer Library
- UEFI و ویندوز – Microsoft TechNet
- CLSID کلید رجیستری اطلاعات – Microsoft Developer Network
- چگونه برای تولید و تجزیه UUIDs (یا GUIDs) در جاوا
- استاندارد بینالمللی "X. 667: ... نسل ... از جهانی شناسه منحصر به فرد (UUIDs)..." (ITU-T Rec. X. 667 از ۲۰۰۸–۰۸ آزادانه در دسترس)
- استاندارد بینالمللی "نسل و ثبت جهانی شناسه منحصر به فرد (UUIDs) و استفاده از آنها به عنوان اصن.1 Object Identifier قطعات" (ITU-T Rec. X. 667 آزادانه در دسترس)
- جهانی شناسه منحصر به فرد (ITU شامل لینک به یک صفحه که در آن نسخه ۱ و نسخه 4 UUIDs ممکن است تولید)
- ISO/IEC 9834-8:2008 "... نسل و ثبت جهانی شناسه منحصر به فرد (UUIDs) و استفاده از آنها به عنوان اصن.1 Object Identifier قطعات"
- عوام Id
- نحو و معناشناسی از DCE نوع از جهانی شناسه منحصر به فرد (UUIDs)
- تصادفی UUID احتمال تکراری
- تاریخچه مختصری از UUID