یو یو آئی ڈی v4 جنریٹر
یہ صفحہ ایک بار میں ایک سے سو UUID v4 شناخت کنندگان تیار کرتا ہے۔ ہر شناخت کنندہ 36 حروف پر مشتمل ایک معیاری 8‑4‑4‑4‑12 ہیکس فارمیٹ میں ہوتا ہے۔ آپ بڑے حروف (uppercase) استعمال کرنے، ہائفن شامل کرنے یا ہٹانے، اور تعداد (1 سے 100) کا انتخاب کر سکتے ہیں۔ تمام شناخت کنندگان آپ کے براؤزر میں فوراً ظاہر ہو جاتے ہیں، اور آپ کسی ایک پر کلک کر کے اسے کاپی کر سکتے ہیں یا "کاپی آل" کے ذریعے سب ایک ساتھ کاپی کر سکتے ہیں۔
اس صفحے کو کیا خاص بناتا ہے
یہ صفحہ UUID v4 کی تیاری میں 122 بٹس کی مکمل بے ترتیبی (pure randomness) استعمال کرتا ہے۔ باقی 6 بٹس فکسڈ ورژن اور ویرینٹ بٹس ہیں۔ اس کا مطلب ہے کہ یہ شناخت کنندگان کسی ترتیب میں نہیں آتے — ان میں وقت یا ترتیب کی کوئی معلومات شامل نہیں ہوتی۔
اگر آپ انہیں ڈیٹا بیس میں پرائمری کلید کے طور پر استعمال کریں تو یہ B-tree انڈیکسز کو ٹکڑے ٹکڑے (fragment) کر دیتے ہیں، کیونکہ نئی اندراجات بے ترتیب جگہوں پر داخل ہوتی ہیں۔ یہ انڈیکس کی کارکردگی کو متاثر کرتا ہے، خاص طور پر جب ڈیٹا بیس میں بڑی تعداد میں قطاریں ہوں۔
تصادم (collision) کا امکان عملی طور پر نہ ہونے کے برابر ہے۔ 122 بٹس کی اینٹروپی کے ساتھ، دو مختلف UUIDs کے ایک جیسے ہونے کا امکان اتنا کم ہے کہ اسے بڑے پیمانے کے نظاموں میں بھی نظر انداز کیا جا سکتا ہے۔
اس صفحے پر موجود فارمیٹ کنٹرولز (بڑے حروف، ہائفن) صرف UUID v4 اور v7 کے لیے معنی رکھتے ہیں؛ دوسری ID اقسام (ULID، NanoID) کے لیے مختلف کنٹرولز استعمال ہوتے ہیں۔
122 بٹس کی بے ترتیبی اور تصادم کا امکان
UUID v4 کا معیار (RFC 4122) بتاتا ہے کہ اس میں کل 128 بٹس ہوتے ہیں۔ ان میں سے 4 بٹس ورژن (version 4) کے لیے، اور 2 بٹس ویرینٹ (variant) کے لیے مخصوص ہیں۔ باقی 122 بٹس مکمل طور پر بے ترتیب ہوتے ہیں۔
تصادم کے امکان کا حساب لگانے کے لیے "تولد کی تبدیلی" (birthday problem) استعمال ہوتی ہے۔ اگر آپ تقریباً 2.7×10¹⁸ UUID v4 تیار کریں تو اس بات کا 50 فیصد امکان ہے کہ دو ایک جیسے ہوں۔ یہ تعداد بہت بڑی ہے — کائنات میں موجود ریت کے ذرات سے بھی زیادہ۔
عملی طور پر، جب تک آپ کروڑوں UUIDs فی سیکنڈ تیار نہیں کر رہے، تصادم کا امکان معقول حد تک صفر ہے۔ اس لیے یہ شناخت کنندگان ان نظاموں کے لیے موزوں ہیں جہاں مرکزی اتھارٹی ممکن نہیں (مثلاً آف لائن ایپلی کیشنز، تقسیم شدہ نظام)۔
ڈیٹا بیس انڈیکسنگ پر اثر
جب آپ UUID v4 کو پرائمری کلید کے طور پر استعمال کرتے ہیں، تو ڈیٹا بیس کو ہر نئی قطار کے لیے انڈیکس میں ایک نیا اندراج کہیں بھی — بیچ میں، آخر میں، یا شروع میں — ڈالنا پڑتا ہے۔ یہ بی ٹری (B-tree) انڈیکس کو فریگمنٹ کرتا ہے کیونکہ بی ٹری کو متوازن رکھنے کے لیے بار بار صفحے تقسیم (page splits) کرنے پڑتے ہیں۔
مثال کے طور پر، MySQL میں InnoDB انجن کے ساتھ، کلسٹرڈ انڈیکس (clustered index) میں بے ترتیب اندراج کی وجہ سے ڈسک I/O میں اضافہ ہوتا ہے اور کارکردگی کم ہو سکتی ہے۔
اس مسئلے کو کم کرنے کے لیے دو عام طریقے ہیں:
- ترتیبی شناخت کنندگان جیسے UUID v7 یا ULID استعمال کریں، جو وقت کے لحاظ سے ترتیب شدہ ہوتے ہیں۔
- یا پھر کمپاؤنڈ انڈیکس (compound index) استعمال کریں جہاں پرائمری کلید کے علاوہ کوئی دوسرا کالم ترتیب فراہم کرے۔
یہ نوٹ کرنا ضروری ہے کہ UUID v4 کا یہ رویہ کوئی نقص نہیں بلکہ ڈیزائن کی خاصیت ہے — یہ بے ترتیبی کو یقینی بناتا ہے جو بعض استعمالات کے لیے ضروری ہے۔
وقت پر مبنی شناخت کنندگان سے موازنہ
اسی صفحے پر UUID v7، ULID، اور NanoID بھی دستیاب ہیں۔ یہ سب وقت پر مبنی شناخت کنندگان ہیں (سوائے NanoID کے، جو بے ترتیب ہے لیکن چھوٹا ہوتا ہے)۔
| خصوصیت | UUID v4 | UUID v7 | ULID |
|---|---|---|---|
| بے ترتیب بٹس | 122 | 74 (باقی وقت کے لیے) | 80 |
| ترتیب دینے کی صلاحیت | نہیں | ہاں (وقت کے لحاظ سے) | ہاں (وقت کے لحاظ سے) |
| انڈیکس فریگمنٹیشن | زیادہ | کم | کم |
| منفردیت کی ضمانت | بے ترتیب | وقت + بے ترتیب | وقت + بے ترتیب |
اگر آپ کو بے ترتیب، غیر متوقع شناخت کنندگان کی ضرورت ہے (مثلاً API ٹوکن، سیکیورٹی کلید)، تو UUID v4 بہتر ہے۔ لیکن اگر آپ ڈیٹا بیس کی کارکردگی کو ترجیح دیتے ہیں اور وقت پر مبنی ترتیب قابل قبول ہے، تو UUID v7 یا ULID استعمال کریں۔
یہ صارفین کے لیے ایک اہم انتخاب ہے — اور اس صفحے کے ڈیزائن میں یہ فرق واضح کیا گیا ہے۔
حسب ضرورت فارمیٹ اور اس کے استعمال
اس صفحے پر دو اختیاری فارمیٹ تبدیلیاں دستیاب ہیں:
-
بڑے حروف (Uppercase): جب آن ہو تو ہیکس حروف a–f بڑے حروف A–F میں ظاہر ہوتے ہیں۔ یہ صرف ظاہری شکل کو تبدیل کرتا ہے، منفردیت کو نہیں۔ کچھ سسٹم (جیسے AWS) تمام چھوٹے حروف استعمال کرتے ہیں، جبکہ دوسرے (جیسے Windows) بڑے حروف کو ترجیح دیتے ہیں۔
-
ہائفن شامل کریں (Include hyphens): جب بند ہو تو ہائفن ہٹا دیے جاتے ہیں اور سٹرنگ 32 ہیکس حروف پر مشتمل ہو جاتی ہے۔ یہ مختصر شکل (32 حروف) URL میں استعمال کرنے کے لیے زیادہ آسان ہے، کیونکہ ہائفن والی 36 حرفی سٹرنگ کو بعض اوقات انکوڈ کرنا پڑتا ہے۔
نوٹ: جب آپ ان میں سے کوئی بھی تبدیلی کرتے ہیں، تو تمام شناخت کنندگان فوراً دوبارہ تیار ہو جاتے ہیں۔ یہ رویہ پورے سائٹ پر یکساں ہے۔
عام غلطیاں اور کنارے کی صورتیں
یہ صفحہ تمام ID جنریشن براؤزر میں مقامی طور پر کرتا ہے۔ کوئی بھی معلومات سرور کو نہیں بھیجی جاتی۔ یہ پرائیویسی کے لحاظ سے اہم ہے، خاص طور پر اگر آپ سیکیور کلید تیار کر رہے ہیں۔
تاہم، کچھ عام غلطیاں جو صارفین کرتے ہیں:
- تعداد کی حد (1 سے 100): صفحہ صرف 1 سے 100 کے درمیان تعداد قبول کرتا ہے۔ اگر آپ 0 یا 101 درج کریں تو یہ کام نہیں کرے گا۔
- کاپی کرنے کا طریقہ: انفرادی UUID پر کلک کرنے سے وہ ایک کاپی ہوتا ہے۔ "کاپی آل" سے تمام کاپی ہوتے ہیں۔ اسٹیٹس میسج "Generated." یا "Ready." ظاہر کرتا ہے، اور کاپی ہونے کے بعد "Copied all!" دکھاتا ہے۔
- فارمیٹ تبدیلیاں فوری اثر: جیسے ہی آپ ہائفن یا اپرکیس کا ٹوگل تبدیل کرتے ہیں، تمام IDs بدل جاتے ہیں۔ اس لیے اگر آپ نے پہلے کچھ IDs کاپی کیے تھے اور پھر فارمیٹ بدلا، تو وہ پرانے IDs ضائع ہو جائیں گے۔
اکثر پوچھے گئے سوالات
سوال 1: کیا میں 100 سے زیادہ UUIDs تیار کر سکتا ہوں؟
جواب: نہیں، یہ صفحہ صرف 1 سے 100 کے درمیان تعداد قبول کرتا ہے۔ مزید IDs کے لیے آپ کو دوبارہ جنریٹ کرنا ہوگا۔
سوال 2: کیا یہ UUID v4 معیاری آر ایف سی 4122 کے مطابق ہے؟
جواب: جی ہاں۔ ہر تیار کردہ UUID میں ورژن 4 کے لیے 4 بٹس اور ویرینٹ 1 کے لیے 2 بٹس مقرر ہیں، باقی 122 بٹس بے ترتیب ہیں۔
سوال 3: کیا ہائفن ہٹانے سے منفردیت متاثر ہوتی ہے؟
جواب: نہیں، ہائفن صرف ایک ہی سٹرنگ کی نمائندگی کا طریقہ ہیں۔ 32 حروف والی شکل وہی 128 بٹس رکھتی ہے۔
سوال 4: کیا یہ صفحہ انٹرنیٹ کنکشن کے بغیر کام کرتا ہے؟
جواب: جی ہاں، تمام حساب کتاب آپ کے براؤزر میں مقامی طور پر ہوتا ہے۔ ایک بار صفحہ لوڈ ہونے کے بعد، آپ آف لائن بھی IDs تیار کر سکتے ہیں۔
سوال 5: کیا میں ان UUIDs کو سیکیورٹی ٹوکن کے طور پر استعمال کر سکتا ہوں؟
جواب: جی ہاں، 122 بٹس کی بے ترتیبی انہیں غیر متوقع بناتی ہے۔ تاہم، اگر آپ کو کریپٹوگرافک طور پر مضبوط رینڈمنیس کی ضرورت ہو تو براہ کرم یاد رکھیں کہ یہ صفحہ crypto.randomUUID یا اس سے ملتے جلتے APIs استعمال کرتا ہے جو خود براؤزر کے سیکیور رینڈم نمبر جنریٹر پر انحصار کرتے ہیں۔
سوال 6: کیا مختلف فارمیٹس (بڑے حروف، کوئی ہائفن) کے درمیان سوئچ کرنے سے IDs دوبارہ جنریٹ ہوتے ہیں؟
جواب: جی ہاں، جیسے ہی آپ کوئی بھی آپشن تبدیل کرتے ہیں (فارمیٹ، تعداد، اپرکیس، ہائفن)، تمام IDs فوراً نئے سرے سے تیار ہوتے ہیں۔