UUID / ULID / NanoID জেনারেটর

আপনার ব্রাউজারেই তাৎক্ষণিকভাবে UUID v4, UUID v7, ULID এবং NanoID তৈরি করুন।

ফরম্যাট

১২২ বিটের সম্পূর্ণ র্যান্ডমনেস — কোনো ক্রম নেই, অনুমান করা অসম্ভব।

তৈরিকৃত আইডিসমূহ
প্রস্তুত।

আপনার আইডিগুলো শক্তিশালী ব্রাউজার র্যান্ডমনেস দিয়ে স্থানীয়ভাবে তৈরি করা হয়। BroBroGo-তে কিছুই পাঠানো হয় না।

জিজ্ঞাসিত প্রশ্নাবলী

UUID v4, UUID v7, ULID এবং NanoID-এর মধ্যে পার্থক্য কী?

UUID v4 হলো চিরচেনা ৩৬-ক্যারেক্টার ফরম্যাটের ১২২ বিটের সম্পূর্ণ র্যান্ডম আইডি, কিন্তু এর র্যান্ডম অর্ডারের কারণে ডাটাবেস ইনডেক্স লোকালিটি ভালো হয় না। UUID v7 একই ফরম্যাট বজায় রেখে শুরুতে একটি মিলিসেকেন্ড টাইমস্ট্যাম্প যোগ করে, যাতে আইডিগুলো তৈরির সময় অনুযায়ী সাজানো যায় — যা প্রাইমারি কি-র জন্য বেশ সুবিধাজনক। ULID একই সুবিধা দেয় আরও ছোট, কেস-ইনসেনসিটিভ ২৬-ক্যারেক্টার স্ট্রিংয়ে। NanoID কোনো প্রকার অর্ডারিং ছাড়াই অনেক ছোট এবং সম্পূর্ণ কাস্টমাইজড আইডি তৈরি করে — যেখানে আপনি দৈর্ঘ্য এবং ক্যারেক্টার সেট বেছে নিতে পারেন।

এই আইডিগুলো কি অনুমান করা অসম্ভব হওয়ার মতো যথেষ্ট র্যান্ডম?

হ্যাঁ — প্রতিটি আইডি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী ব্রাউজার র্যান্ডমনেস দিয়ে তৈরি করা হয়, কোনো অনুমানযোগ্য সোর্স থেকে নয়। UUID v4 এবং NanoID-এর ডিফল্ট অ্যালফাবেটে ১০০ বিটেরও বেশি র্যান্ডমনেস থাকে। UUID v7 এবং ULID শুরুর টাইমস্ট্যাম্পের জন্য প্রায় ৪৮ বিট ছেড়ে দেয়, তাই টাইমস্ট্যাম্প-প্রিফিক্সড ফরম্যাটগুলোকে সিক্রেট হিসেবে দেখার চেয়ে সর্টেবল আইডি হিসেবে বিবেচনা করাই ভালো।

আমি কি NanoID-এর দৈর্ঘ্য এবং ক্যারেক্টার সেট পরিবর্তন করতে পারি?

হ্যাঁ — NanoID-তে সুইচ করলে এই টুলটি একটি লেন্থ স্লাইডার (ডিফল্ট হিসেবে ২১ ক্যারেক্টার, যা লাইব্রেরির সাথে মেলে) এবং একটি এডিটেবল অ্যালফাবেট ফিল্ড প্রদর্শন করে। দৈর্ঘ্য কমানো বা অ্যালফাবেট ছোট করলে কলিশন রেজিস্ট্যান্স কমে যায়, তাই ক্যারেক্টার সেট কমালে দৈর্ঘ্য বাড়িয়ে রাখুন।

ইউনিক আইডেন্টিফায়ার ফরম্যাটের তুলনামূলক বিশ্লেষণ

সফটওয়্যার ডেভেলপমেন্ট এবং ডাটাবেস ডিজাইনে ইউনিক আইডেন্টিফায়ার (ID) একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান। বিভিন্ন সিস্টেমের প্রয়োজনীয়তার ওপর ভিত্তি করে সঠিক আইডি ফরম্যাট নির্বাচন করতে হয়। এই জেনারেটর টুলটি মূলত চার ধরনের বহুল ব্যবহৃত আইডি ফরম্যাট সমর্থন করে: UUID v4, UUID v7, ULID এবং NanoID।

  • UUID v4: এটি ৩৬-ক্যারেক্টার ফরম্যাটের একটি আইডেন্টিফায়ার, যা ১২২ বিটের সম্পূর্ণ র্যান্ডমনেস বা দৈবচয়নের ওপর ভিত্তি করে তৈরি হয়। এর কোনো নির্দিষ্ট ক্রম বা সিকোয়েন্স থাকে না, যার ফলে এটি অনুমান করা সম্পূর্ণ অসম্ভব।
  • UUID v7: এটিও একটি ৩৬-ক্যারেক্টার ফরম্যাটের আইডি, তবে এর গঠন প্রক্রিয়া ভিন্ন। এটি শুরু হয় একটি মিলিসেকেন্ড টাইমস্ট্যাম্প দিয়ে, যার ফলে আইডিগুলো তৈরির সময় অনুসারে সাজানো বা সর্ট করা যায়। ডাটাবেস ইনডেক্সিং এবং প্রাইমারি কি-র জন্য এটি অত্যন্ত কার্যকর।
  • ULID (Universally Unique Lexicographically Sortable Identifier): এটি ২৬-ক্যারেক্টারের একটি কেস-ইনসেনসিটিভ স্ট্রিং। UUID v7 এর মতো এটিও শুরুতে একটি টাইমস্ট্যাম্প ব্যবহার করে সময়-ক্রম বজায় রাখে, তবে এটি তুলনামূলকভাবে সংক্ষিপ্ত টেক্সট ফরম্যাটে কাজ করে।
  • NanoID: এটি কোনো প্রকার অর্ডারিং বা সময়-ক্রম ছাড়াই অত্যন্ত কমপ্যাক্ট আইডি তৈরি করে। এর সবচেয়ে বড় সুবিধা হলো এর দৈর্ঘ্য এবং ক্যারেক্টার সেট বা অ্যালফাবেট সম্পূর্ণ কাস্টমাইজ করা যায়।

র্যান্ডমনেস, ক্রিপ্টোগ্রাফিক শক্তি এবং কলিশন রেজিস্ট্যান্স

আইডি জেনারেশনের ক্ষেত্রে র্যান্ডমনেস বা দৈবচয়নের মান সরাসরি তার নিরাপত্তার সাথে সম্পর্কিত। এই টুলের মাধ্যমে তৈরি প্রতিটি আইডি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী ব্রাউজার র্যান্ডমনেস ব্যবহার করে স্থানীয়ভাবে তৈরি করা হয়।

UUID v4 এবং NanoID (এর ডিফল্ট ২১ ক্যারেক্টার দৈর্ঘ্যে) ১০০ বিটেরও বেশি র্যান্ডমনেস প্রদান করে। এর ফলে দুটি আইডি একই হওয়ার বা কলিশন (Collision) ঘটার সম্ভাবনা গাণিতিকভাবে শূন্যের কাছাকাছি। অন্যদিকে, সময়-ভিত্তিক আইডি যেমন UUID v7 এবং ULID তাদের গঠনের শুরুর অংশে টাইমস্ট্যাম্পের জন্য প্রায় ৪৮ বিট বরাদ্দ রাখে। এই কারণে টাইমস্ট্যাম্প-প্রিফিক্সড ফরম্যাটগুলোকে অত্যন্ত সুরক্ষিত গোপনীয় চাবিকাঠি (Secret) হিসেবে দেখার চেয়ে সহজে সাজানো যায় এমন সর্টেবল আইডি হিসেবে বিবেচনা করাই শ্রেয়।

NanoID ব্যবহারের ক্ষেত্রে আইডি দৈর্ঘ্য এবং ক্যারেক্টার সেটের মধ্যে একটি ভারসাম্য বজায় রাখা প্রয়োজন। আইডির দৈর্ঘ্য কমালে বা অ্যালফাবেটের ক্যারেক্টার সংখ্যা হ্রাস করলে কলিশন রেজিস্ট্যান্স বা সংঘর্ষ প্রতিরোধের ক্ষমতা কমে যায়। তাই ক্যারেক্টার সেট ছোট করা হলে আইডির দৈর্ঘ্য বাড়িয়ে নেওয়া নিরাপদ।


ডাটাবেস ইনডেক্সিং এবং সর্টিংয়ে টাইম-বেসড আইডির সুবিধা

ঐতিহ্যগত র্যান্ডম আইডি যেমন UUID v4 ডাটাবেসের প্রাইমারি কি হিসেবে ব্যবহার করলে ইনডেক্সিংয়ের পারফরম্যান্স হ্রাস পায়। সম্পূর্ণ র্যান্ডম অর্ডারের কারণে ডাটাবেস ইনডেক্স লোকালিটি নষ্ট হয় এবং ডাটাবেস পেজ ফ্র্যাগমেন্টেশন ঘটে।

এই সমস্যার সমাধান করে UUID v7 এবং ULID। যেহেতু এই আইডিগুলোর শুরুতে মিলিসেকেন্ড টাইমস্ট্যাম্প থাকে, তাই এগুলো তৈরির সময় অনুযায়ী ক্রমানুসারে সাজানো বা সর্ট করা যায়। এর ফলে ডাটাবেসে নতুন ডাটা যুক্ত করার সময় ইনডেক্সিং অত্যন্ত দ্রুত ও সুশৃঙ্খলভাবে সম্পন্ন হয়। তবে মনে রাখা প্রয়োজন যে, একই মিলিসেকেন্ডের মধ্যে একাধিক আইডি তৈরি হলে এই ফরম্যাটগুলো একদম নিখুঁত বা কঠোর ক্রমানুসারের (Strict ordering) নিশ্চয়তা দিতে পারে না।


জেনারেটরের ইনপুট ও কাস্টমাইজেশন নিয়মাবলী

এই টুলটি ব্যবহারকারীদের প্রয়োজন অনুযায়ী আইডি জেনারেট করার জন্য বিভিন্ন ইনপুট অপশন প্রদান করে:

  • ফরম্যাট: ব্যবহারকারী তার প্রয়োজন অনুযায়ী UUID v4, UUID v7, ULID অথবা NanoID নির্বাচন করতে পারেন।
  • সংখ্যা: ১ থেকে ১০০ পর্যন্ত যেকোনো সংখ্যা নির্ধারণ করে একবারে সর্বোচ্চ ১০০টি আইডি তৈরি করা সম্ভব।
  • আপারকেস: UUID-এর ক্ষেত্রে আউটপুট বড় হাতের অক্ষরে প্রদর্শন করার একটি টগল অপশন রয়েছে।
  • হাইফেন অন্তর্ভুক্ত করুন: UUID-এর আউটপুটে হাইফেন রাখা বা না রাখার জন্য এই টগলটি ব্যবহার করা হয়।
  • দৈর্ঘ্য: NanoID-এর জন্য একটি স্লাইডার রয়েছে, যার মাধ্যমে আইডির দৈর্ঘ্য ২ থেকে ৩৬ ক্যারেক্টার পর্যন্ত নির্ধারণ করা যায় (ডিফল্ট দৈর্ঘ্য ২১ ক্যারেক্টার)।
  • অ্যালফাবেট: NanoID তৈরিতে ব্যবহৃত ক্যারেক্টার সেটটি এই টেক্সট ফিল্ডের মাধ্যমে কাস্টমাইজ করা যায়।

বিশেষ নিয়ম ও ত্রুটি: NanoID-এর অ্যালফাবেট ফিল্ডে অবশ্যই অন্তত ২টি ভিন্ন ক্যারেক্টার থাকতে হবে। যদি অ্যালফাবেট পরিবর্তন করে মাত্র একটি ক্যারেক্টারে নামিয়ে আনা হয়, তবে টুলটি স্বয়ংক্রিয়ভাবে ফলাফল মুছে ফেলবে, আইডির সংখ্যা ০ হয়ে যাবে, "সব কপি করুন" বাটনটি নিষ্ক্রিয় হবে এবং স্ক্রিনে অ্যালফাবেটে অন্তত ২টি ভিন্ন ক্যারেক্টার থাকতে হবে। ত্রুটি বার্তাটি প্রদর্শিত হবে। টুলের যেকোনো অপশন পরিবর্তন করার সাথে সাথে আইডিগুলো স্বয়ংক্রিয়ভাবে পুনরায় তৈরি হয়।


গোপনীয়তা এবং ডেটা প্রসেসিং নীতিমালা

এই টুলটি ব্যবহার করার সময় আপনার ডেটার গোপনীয়তা সম্পূর্ণরূপে বজায় থাকে। আইডি তৈরির সমস্ত প্রক্রিয়া আপনার ডিভাইসের ওয়েব ব্রাউজারের ভেতরেই স্থানীয়ভাবে (Locally) সম্পন্ন হয়। আইডি জেনারেট করার জন্য কোনো ডেটা বা তথ্য BroBroGo-এর সার্ভারে পাঠানো হয় না। সম্পূর্ণ প্রক্রিয়াটি ব্রাউজারের নিজস্ব শক্তিশালী র্যান্ডম জেনারেশন অ্যালগরিদম ব্যবহার করে সম্পন্ন হয়।


প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

প্রশ্ন: UUID v4, UUID v7, ULID এবং NanoID-এর মধ্যে পার্থক্য কী?
উত্তর: UUID v4 হলো চিরচেনা ৩৬-ক্যারেক্টার ফরম্যাটের ১২২ বিটের সম্পূর্ণ র্যান্ডম আইডি, কিন্তু এর র্যান্ডম অর্ডারের কারণে ডাটাবেস ইনডেক্স লোকালিটি ভালো হয় না। UUID v7 একই ফরম্যাট বজায় রেখে শুরুতে একটি মিলিসেকেন্ড টাইমস্ট্যাম্প যোগ করে, যাতে আইডিগুলো তৈরির সময় অনুযায়ী সাজানো যায় — যা প্রাইমারি কি-র জন্য বেশ সুবিধাজনক। ULID একই সুবিধা দেয় আরও ছোট, কেস-ইনসেনসিটিভ ২৬-ক্যারেক্টার স্ট্রিংয়ে। NanoID কোনো প্রকার অর্ডারিং ছাড়াই অনেক ছোট এবং সম্পূর্ণ কাস্টমাইজড আইডি তৈরি করে — যেখানে আপনি দৈর্ঘ্য এবং ক্যারেক্টার সেট বেছে নিতে পারেন।

প্রশ্ন: এই আইডিগুলো কি অনুমান করা অসম্ভব হওয়ার মতো যথেষ্ট র্যান্ডম?
উত্তর: হ্যাঁ — প্রতিটি আইডি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী ব্রাউজার র্যান্ডমনেস দিয়ে তৈরি করা হয়, কোনো অনুমানযোগ্য সোর্স থেকে নয়। UUID v4 এবং NanoID-এর ডিফল্ট অ্যালফাবেটে ১০০ বিটেরও বেশি র্যান্ডমনেস থাকে। UUID v7 এবং ULID শুরুর টাইমস্ট্যাম্পের জন্য প্রায় ৪৮ বিট ছেড়ে দেয়, তাই টাইমস্ট্যাম্প-প্রিফিক্সড ফরম্যাটগুলোকে সিক্রেট হিসেবে দেখার চেয়ে সর্টেবল আইডি হিসেবে বিবেচনা করাই ভালো।

প্রশ্ন: আমি কি NanoID-এর দৈর্ঘ্য এবং ক্যারেক্টার সেট পরিবর্তন করতে পারি?
উত্তর: হ্যাঁ — NanoID-তে সুইচ করলে এই টুলটি একটি লেন্থ স্লাইডার (ডিফল্ট হিসেবে ২১ ক্যারেক্টার, যা লাইব্রেরির সাথে মেলে) এবং একটি এডিটেবল অ্যালফাবেট ফিল্ড প্রদর্শন করে। দৈর্ঘ্য কমানো বা অ্যালফাবেট ছোট করলে কলিশন রেজিস্ট্যান্স কমে যায়, তাই ক্যারেক্টার সেট কমালে দৈর্ঘ্য বাড়িয়ে রাখুন।

প্রশ্ন: জেনারেট করা আইডিগুলো কীভাবে কপি করব?
উত্তর: আপনি খুব সহজেই যেকোনো একক আইডির ওপর ক্লিক করে সেটি ক্লিপবোর্ডে কপি করতে পারেন। অথবা একসাথে সবগুলো আইডি কপি করতে চাইলে "সব কপি করুন" বাটনটি ব্যবহার করতে পারেন।