UUID ভার্সন কী?

একটি UUID (Universally Unique Identifier) হলো একটি ১২৮-বিটের পরিচয়কারী যা RFC 4122 এবং RFC 9562 দ্বারা মানসম্পন্ন। প্রতিটি UUID-এ একটি ভার্সন ফিল্ড থাকে যা নির্দেশ করে এটি কীভাবে তৈরি হয়েছে। ভার্সনটি ১৩তম হেক্সাডেসিমাল ডিজিটে (৭ম বাইটের হাই নিবল) এনকোড করা থাকে এবং এটি পরিচয়কারী তৈরিতে ব্যবহৃত অ্যালগরিদম ও ডেটা উৎস নির্ধারণ করে।

বর্তমানে আটটি সংজ্ঞায়িত ভার্সন রয়েছে (v1 থেকে v8), এবং দুটি বিশেষ রূপ: Nil UUID (সব শূন্য) এবং Max UUID (সব এক)। প্রতিটি ভার্সন ভিন্ন উদ্দেশ্যে ব্যবহৃত হয় — কিছু কালানুক্রমিক সাজানোর জন্য টাইমস্ট্যাম্প এম্বেড করে, কিছু নির্ধারণবাদী তৈরির জন্য ক্রিপ্টোগ্রাফিক হ্যাশ ব্যবহার করে, এবং অন্যগুলো সরলতার জন্য র‍্যান্ডম সংখ্যার উপর নির্ভর করে। ভার্সন জানা আপনাকে একটি UUID-এর বৈশিষ্ট্য, নিরাপত্তা প্রভাব এবং উদ্দিষ্ট ব্যবহারের ক্ষেত্র বুঝতে সাহায্য করে।

ভেরিয়েন্ট ফিল্ড, আলাদাভাবে এনকোড করা, চিহ্নিত করে যে পরিচয়কারীটি কোন UUID স্পেসিফিকেশন মেনে চলে। বেশিরভাগ আধুনিক UUID RFC 4122/RFC 9562 ভেরিয়েন্ট ব্যবহার করে, তবে পুরনো সিস্টেমগুলো NCS বা Microsoft ভেরিয়েন্ট তৈরি করতে পারে।

টুলের বিবরণ

এই টুলটি যেকোনো UUID ইনপুট হিসেবে নেয় এবং এর ভার্সন নম্বর, ভার্সনের নাম, ভেরিয়েন্ট, তৈরির পদ্ধতি এবং সেই ভার্সনটি কীভাবে কাজ করে তার বিস্তারিত বিবরণ চিহ্নিত করে। এটি সমস্ত স্ট্যান্ডার্ড ভার্সন (v1 থেকে v8), এবং Nil ও Max UUID সমর্থন করে। শুধু একটি UUID পেস্ট করুন এবং তাৎক্ষণিকভাবে এর সম্পূর্ণ বিশ্লেষণ দেখুন।

উদাহরণ

ইনপুট UUID ভার্সন নাম
550e8400-e29b-41d4-a716-446655440000 4 র‍্যান্ডম (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 টাইম-ভিত্তিক (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 Unix Epoch টাইম-ভিত্তিক (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

বৈশিষ্ট্যসমূহ

  • v1 থেকে v8 পর্যন্ত সমস্ত UUID ভার্সন, এবং Nil ও Max UUID শনাক্ত করে
  • ভেরিয়েন্ট চিহ্নিত করে (RFC 4122/9562, NCS, Microsoft, বা Reserved)
  • ভার্সনটি কীভাবে তৈরি হয় তা ব্যাখ্যা করে মানব-পাঠযোগ্য বিবরণ প্রদর্শন করে
  • UUID তৈরিতে ব্যবহৃত তৈরির পদ্ধতি প্রদর্শন করে
  • টাইপ বা পেস্ট করার সাথে সাথে তাৎক্ষণিক রিয়েল-টাইম শনাক্তকরণ

ব্যবহারের ক্ষেত্র

  • ডিস্ট্রিবিউটেড সিস্টেম ডিবাগিং: আপনার লগে UUID গুলো টাইম-ভিত্তিক (v1/v6/v7) নাকি র‍্যান্ডম (v4) তা নির্ধারণ করুন, যাতে বুঝতে পারেন সেগুলোতে এক্সট্র্যাক্টযোগ্য এম্বেডেড টাইমস্ট্যাম্প আছে কিনা।
  • ডেটাবেস অপ্টিমাইজেশন: আপনার প্রাইমারি কি গুলো সর্টযোগ্য UUID ভার্সন (v6, v7) ব্যবহার করে নাকি র‍্যান্ডম (v4) যা ইনডেক্স ফ্র্যাগমেন্টেশন ঘটাতে পারে তা চিহ্নিত করুন।
  • নিরাপত্তা অডিটিং: v1 UUID শনাক্ত করুন যা MAC অ্যাড্রেস বা টাইমস্ট্যাম্প ফাঁস করতে পারে, যা তথ্য প্রকাশের ঝুঁকি মূল্যায়নে সাহায্য করে।

এটি কীভাবে কাজ করে

টুলটি দুটি মূল ফিল্ড বের করতে UUID-এর হেক্সাডেসিমাল কাঠামো পার্স করে:

  1. ভার্সন: ১৩তম হেক্স ডিজিট থেকে পড়া হয় (স্ট্রিপড হেক্স string-এ ইনডেক্স ১২)। এই নিবলটি সরাসরি ভার্সন নম্বর (১–৮) এনকোড করে। Nil এবং Max UUID শনাক্ত করা হয় সমস্ত বিট শূন্য বা সমস্ত বিট এক কিনা তা পরীক্ষা করে।
  2. ভেরিয়েন্ট: ১৭তম হেক্স ডিজিটের (ইনডেক্স ১৬) সবচেয়ে গুরুত্বপূর্ণ বিট দ্বারা নির্ধারিত। বিট প্যাটার্নটি চারটি ভেরিয়েন্ট পরিবারের একটিতে ম্যাপ করে: NCS, RFC 4122/9562, Microsoft, বা Reserved।

এক নজরে UUID ভার্সনসমূহ

ভার্সন নাম মূল বৈশিষ্ট্য
v1 টাইম-ভিত্তিক টাইমস্ট্যাম্প + MAC অ্যাড্রেস
v2 DCE Security টাইমস্ট্যাম্প + MAC + POSIX UID/GID
v3 নাম-ভিত্তিক (MD5) নেমস্পেস + নাম থেকে নির্ধারণবাদী
v4 র‍্যান্ডম ১২২টি র‍্যান্ডম বিট
v5 নাম-ভিত্তিক (SHA-1) নির্ধারণবাদী, v3-এর চেয়ে শক্তিশালী হ্যাশ
v6 পুনর্বিন্যস্ত টাইম-ভিত্তিক v1-এর সর্টযোগ্য ভেরিয়েন্ট
v7 Unix Epoch টাইম-ভিত্তিক Unix ms টাইমস্ট্যাম্প + র‍্যান্ডম, DB কি-এর জন্য আদর্শ
v8 কাস্টম ভেন্ডর-নির্দিষ্ট বা পরীক্ষামূলক
Nil Nil UUID সমস্ত ১২৮ বিট শূন্যে সেট
Max Max UUID সমস্ত ১২৮ বিট এক-এ সেট

সাধারণ জিজ্ঞাসা

UUID ভার্সন এবং ভেরিয়েন্টের মধ্যে পার্থক্য কী? ভার্সন তৈরির অ্যালগরিদম নির্দেশ করে (টাইম-ভিত্তিক, র‍্যান্ডম, হ্যাশ-ভিত্তিক, ইত্যাদি), যেখানে ভেরিয়েন্ট চিহ্নিত করে UUID কোন স্পেসিফিকেশন মেনে চলে (RFC 4122, NCS, Microsoft)। আপনি যে বেশিরভাগ UUID দেখবেন সেগুলো RFC 4122/9562 ভেরিয়েন্টের হবে।

কোন UUID ভার্সন ব্যবহার করা উচিত? বেশিরভাগ অ্যাপ্লিকেশনের জন্য, v4 (র‍্যান্ডম) সবচেয়ে সহজ এবং সবচেয়ে ব্যাপকভাবে সমর্থিত। যদি ডেটাবেস প্রাইমারি কি-এর জন্য টাইম-সর্টযোগ্য পরিচয়কারী প্রয়োজন হয়, তাহলে v7 আধুনিক সুপারিশ। যখন কোনো নাম থেকে নির্ধারণবাদী UUID প্রয়োজন তখন v5 ব্যবহার করুন।

এই টুলটি কি UUID থেকে টাইমস্ট্যাম্প বের করতে পারে? এই টুলটি শুধুমাত্র ভার্সন এবং ভেরিয়েন্ট চিহ্নিত করে। v1, v6, বা v7 UUID থেকে এম্বেডেড টাইমস্ট্যাম্প বের করতে, নির্দিষ্ট UUID Time Extractor টুল ব্যবহার করুন।