۱۰۰ مقدار UUID نسخهٔ ۴ را یکجا تولید کنید
تعداد را روی ۱۰۰ بگذارید و نمایش متعارف را برای چیدمان آشنای ۸-۴-۴-۴-۱۲ نگه دارید. هر ردیف از بایتهای تازهٔ Web Crypto تولید میشود؛ نیبل نسخه روی ۴ و بیتهای واریانت روی الگوی ۱۰ مطابق RFC ۹۵۶۲ ثابت میشوند.
UUIDهای تولیدشده
| ۱ | 21cd25f3-eb09-45c4-9f13-06caa6bdf44a |
| ۲ | 8423f886-6f52-4b26-ad47-467bdb3d5086 |
| ۳ | 09f685e3-b198-419b-bc5f-0ec8dcf96bad |
| ۴ | 439141ed-0a43-435a-b8eb-e6f22dc31a27 |
| ۵ | a0b3fb24-819f-46c6-ac27-40f113340d9a |
| ۶ | 79d84bd9-bf20-4fd0-8bd7-000982c1cc9f |
| ۷ | a0b3cadb-8b6b-45a4-8ec7-54d48a52337f |
| ۸ | b1181045-91eb-416e-a9ee-b7360a97cf70 |
| ۹ | 419edfb4-fdb4-424e-bc0a-297b13412652 |
| ۱۰ | 93fdadcd-7242-4793-a712-6f7c4de296aa |
| ۱۱ | 32a6d332-30b0-4833-a3d0-fedf01735099 |
| ۱۲ | 7bcb4cea-4265-4a80-9a51-88fbf50742da |
| ۱۳ | ea9a93e8-15f3-4b0a-ad9f-3982922d5051 |
| ۱۴ | 3ed3792f-5d3b-45c5-bede-26b18b80846b |
| ۱۵ | 10040d66-70ea-4fbb-a119-1959a1653035 |
| ۱۶ | 788344e1-749e-42e4-bfa7-9fcc0613f377 |
| ۱۷ | b438a544-0d59-4972-b548-99fe7744de77 |
| ۱۸ | babcfe49-301d-49e9-ba6d-7bc5222fd4e5 |
| ۱۹ | 42925e23-693e-4e23-92f8-57e93d222326 |
| ۲۰ | ea1e8dd0-22b5-4a44-a355-b7e3b3f784c8 |
نتیجهها بدون تضمین درستی ارائه میشوند. روش و منابع در پایین صفحه منتشر شدهاند تا بتوانید محاسبه را بررسی کنید.
هر UUID پس از تنظیم فیلدهای نسخه و واریانت، ۱۲۲ بیت تصادفی دارد.
گزینههای متعارف، فشرده و URN نمایشهای متنی همان بایتهای UUID هستند.
کل دسته بهصورت جدولی ارائه میشود که میتوان آن را بهصورت CSV دانلود کرد.
چگونگی کار
مراحل انجام کار
- اندازهٔ دسته را بهصورت عددی صحیح از ۱ تا ۱۰٬۰۰۰ اعتبارسنجی کنید. برای هر UUID ۱۶ بایت اختصاص دهید و آنها را از Web Crypto در فراخوانیهایی نه بزرگتر از سهمیهٔ ۶۵٬۵۳۶ بایتی آن پر کنید.
- در اکتت ۶، چهار بیت تصادفی پایین را نگه دارید و چهار بیت بالا را با ۰۱۰۰، یعنی فیلد نسخهٔ ۴، جایگزین کنید. در اکتت ۸، شش بیت تصادفی پایین را نگه دارید و دو بیت بالا را با ۱۰، یعنی واریانت RFC، جایگزین کنید.
- ۱۶ اکتت را بهصورت ۳۲ رقم هگزادسیمال بنویسید. شکل متعارف خط تیرهها را در گروهبندی ۸-۴-۴-۴-۱۲ درج میکند؛ شکل فشرده آنها را حذف میکند؛ URN پیشوند urn:uuid را اضافه میکند. بزرگی و کوچکی حروف هیچ بیتی را تغییر نمیدهد.
- مقادیر متعارف را درون دستهٔ فعلی مقایسه کنید و هر تکراری را که واقعاً دیده شده گزارش دهید. هر مقدار را بهصورت یک ردیف نتیجهٔ ثابت ارائه دهید که بتوان آن را کپی یا بهصورت CSV دانلود کرد.
فرضها
- هر UUID از بایتهای تصادفی رمزنگاری مرورگر شروع میشود، نه از Math.random و نه از seed قابلمشاهده برای کاربر. شش بیت ساختاری، ۱۲۲ بیت تصادفی در هر مقدار باقی میگذارند.
- UUIDهای تصادفی برخورد را فوقالعاده بعید میکنند؛ اما ضمانت ریاضی یکتایی نمیدهند. شمار تکراریهای دسته یک مشاهده است، نه اثباتی در برابر مقداری که جای دیگری تولید شده.
- UUIDها شناسه هستند، نه رازهای احراز هویت. RFC ۹۵۶۲ میگوید نباید فرض کرد حدس زدن آنها دشوار است یا صرفِ در اختیار داشتن آنها را مجوز دسترسی دانست.
- مقادیر تولیدشده در URL قرار نمیگیرند، در تنظیمات کاتالوگ ذخیره نمیشوند و به سرور فرستاده نمیشوند. محاسبهٔ دوباره عمداً دستهٔ جدیدی تولید میکند.
پرسشهای رایج
آیا یکتا بودن ۱۰۰ مقدار UUID نسخهٔ ۴ تضمین شده است؟
هیچ سامانهٔ شناسهٔ تصادفیای نمیتواند چنین قولی بدهد، اما برخورد در یک دستهٔ ۱۰۰تایی که بهطور یکنواخت از ۱۲۲ بیت تصادفی برداشته شده، فوقالعاده بعید است. نتیجه همچنین دسته را بررسی میکند و هر تکراری را که واقعاً در آن باشد گزارش میدهد.
آیا GUID با UUID فرق دارد؟
GUID نام رایج مایکروسافت برای همان خانوادهٔ شناسههای ۱۲۸ بیتی است. چیدمان متنی متعارفی که اینجا تولید میشود در هر دو زمینه پذیرفته است.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: مولد دستهای UUID.