TOTP / HOTP 2FA জেনারেটর
ক্রিপ্টোএকটি Base32 সিক্রেট বা otpauth:// URI থেকে সময়-ভিত্তিক (TOTP) বা কাউন্টার-ভিত্তিক (HOTP) ওয়ান-টাইম পাসওয়ার্ড তৈরি করুন। লাইভ কাউন্টডাউন এবং স্ক্যানযোগ্য QR কোড — সবকিছু আপনার ব্রাউজারেই স্থানীয়ভাবে।
দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।
Google Authenticator, Authy, 1Password বা যেকোনো TOTP অ্যাপ দিয়ে স্ক্যান করুন।
এই পৃষ্ঠায়
TOTP কী?#
একটি টাইম-ভিত্তিক ওয়ান-টাইম পাসওয়ার্ড (TOTP) হলো সেই ঘূর্ণনশীল 6-সংখ্যার কোড যা আপনার অথেন্টিকেটর অ্যাপ প্রতিটি অ্যাকাউন্টের পাশে দেখায়। ভেতরে, এটি একটি HMAC: শেয়ার করা সিক্রেট এবং বর্তমান সময় উইন্ডো একসাথে হ্যাশ করা হয়, এবং ফলাফলটি একটি ছোট সংখ্যাসূচক কোডে ছোট করা হয়। কোডটি ঘড়ির উপর নির্ভর করে তৈরি হওয়ায়, এটি প্রতি 30 সেকেন্ডে নিজে থেকেই রিফ্রেশ হয় — যা “আপনার কাছে থাকা কিছু” (সিক্রেট) কে আপনার ফোন এবং পরিষেবার মধ্যে কোনো নেটওয়ার্ক রাউন্ড-ট্রিপ ছাড়াই একটি দ্বিতীয় ফ্যাক্টর হিসেবে ব্যবহারযোগ্য করে তোলে।
এই পৃষ্ঠাটি একটি সম্পূর্ণ কার্যকর TOTP এবং HOTP জেনারেটর। TOTP বর্তমান সময় থেকে কোডটি উদ্ভূত করে এবং পর্ব অতিবাহিত হওয়ার সাথে সাথে নিজেকে রিফ্রেশ করে; HOTP এটি একটি কাউন্টার থেকে উদ্ভূত করে যা প্রতিটি ব্যবহারে এগিয়ে যায়। আপনি সরাসরি একটি Base32 সিক্রেট টাইপ করতে পারেন, বা একটি otpauth:// URI (স্ট্রিংটি QR কোডে এনকোড করা যা পরিষেবাগুলো 2FA চালু করার সময় আপনাকে দেখায়) পেস্ট করতে পারেন এবং প্রতিটি ফিল্ড স্বয়ংক্রিয়ভাবে পূরণ করতে পারেন। পৃষ্ঠাটি এছাড়াও ক্যানোনিক্যাল otpauth:// URI নির্গত করে এবং একটি স্ক্যানযোগ্য QR কোড রেন্ডার করে, তাই আপনি এখান থেকে সরাসরি একটি ফোন অ্যাপে একটি নতুন অ্যাকাউন্ট প্রোভিশন করতে পারেন।
সবকিছু স্থানীয়ভাবে চলে: সিক্রেট কখনো পৃষ্ঠা ছাড়ে না, এবং কোনো অথেন্টিকেশন পরিষেবায় কোনো অনলাইন কল নেই।
ব্যবহারবিধি#
- একটি মোড বেছে নিন: TOTP (সময়-ভিত্তিক, নিজে রিফ্রেশ হয়) বা HOTP (কাউন্টার-ভিত্তিক, ম্যানুয়ালি এগিয়ে যায়)।
- সিক্রেট দিন। হয় সিক্রেট ফিল্ডে Base32 সিক্রেট পেস্ট করুন, বা একবারে প্রতিটি প্যারামিটার অটো-ফিল করতে URI ফিল্ডে একটি
otpauth://URI পেস্ট করুন। - ইস্যুকারী এবং অ্যাকাউন্ট লেবেল সেট করুন (এগুলো শুধুমাত্র প্রভাবিত করে একটি অথেন্টিকেটর অ্যাপে এন্ট্রিটি কীভাবে নামকরণ করা হয়, কোডটিকে নয়)।
- অ্যালগরিদম (SHA-1 / SHA-256 / SHA-512 — SHA-1 সার্বজনীন ডিফল্ট), সংখ্যা (6 / 7 / 8 — 6 মানক), এবং — TOTP-র জন্য — সেকেন্ডে পর্ব (ডিফল্ট 30) বেছে নিন। HOTP-র জন্য, কাউন্টার সেট করুন এবং প্রতিটি ব্যবহারের পরে এটি এগিয়ে নিতে পরবর্তী কোড ক্লিক করুন।
- তৈরি ক্লিক করুন। কোডটি বড় আকারে উপস্থিত হয় একটি কাউন্টডাউন্ট রিং সহ যা বর্তমান পর্বে অবশিষ্ট সেকেন্ড দেখায়; তার নিচে,
otpauth://URI এবং একটি স্ক্যানযোগ্য QR কোড।
মূল বৈশিষ্ট্য#
- একস্থানে TOTP এবং HOTP। সিক্রেট পুনরায় না লিখে সময়-ভিত্তিক এবং কাউন্টার-ভিত্তিক ভেরিয়েন্টের মধ্যে স্যুইচ করুন।
- সহনশীল Base32 হ্যান্ডলিং। স্পেস, হাইফেন, ছোট-হাতের, এবং বিচ্যুত অক্ষর স্বয়ংক্রিয়ভাবে পরিষ্কার করা হয়, তাই অস্বস্তিকর ফরম্যাট থেকে কপি করা সিক্রেটগুলো এখনও কাজ করে।
- URI ইমপোর্ট এবং এক্সপোর্ট। প্রতিটি ফিল্ড পপুলেট করতে একটি
otpauth://URI পেস্ট করুন, বা অন্যত্র একটি নতুন অ্যাকাউন্ট প্রোভিশন করতে তৈরি করা URI কপি করুন। - লাইভ QR কোড। URI থেকে পৃষ্ঠায় রেন্ডার করা, যেকোনো অথেন্টিকেটর অ্যাপে স্ক্যান করার জন্য প্রস্তুত।
- কাউন্টডাউন্ট রিং। পরবর্তী রিফ্রেশ পর্যন্ত একটি ভিজ্যুয়াল কাউন্টডাউন্ট, যাতে আপনি জানেন আপনি যে কোডটি টাইপ করতে চলেছেন তার কি পর্যাপ্ত সময় আছে।
- শূন্য আপলোড। জেনারেশন, পার্সিং, এবং QR রেন্ডারিং সবই স্থানীয়; সিক্রেট কখনো প্রেরণ করা হয় না।
ব্যবহারিক উদাহরণ#
RFC 6238 রেফারেন্স সিড হলো ASCII স্ট্রিং 12345678901234567890, যা Base32-তে GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ। সেই সিক্রেটটি টাইপ করুন, সংখ্যা 8 এবং পর্ব 30 সেট করুন, এবং কোডগুলো প্রকাশিত টেস্ট ভেক্টরগুলোর সাথে হুবহু মেলে:
- SHA-1 সময় = epoch এর 59 সেকেন্ডে →
94287082 - SHA-256 একই মুহূর্তে →
46119246 - SHA-512 একই মুহূর্তে →
90693936
সময় = 1111111109 (ভবিষ্যতের অনেক দূরের একটি তারিখ), SHA-1 07081804 তৈরি করে। এগুলো হলো সেই একই পরিচিত-উত্তর মান যার বিরুদ্ধে এই টুলের নিজস্ব টেস্ট স্যুইট যাচাই করে, তাই সেগুলো একটি জেনারেটর সঠিক তা নিশ্চিত করার একটি নির্ভরযোগ্য উপায়। প্রতিদিনের 2FA-র জন্য, পরিষেবাগুলো 6 সংখ্যা, SHA-1, এবং একটি 30-সেকেন্ড পর্ব ব্যবহার করে — সংখ্যাগুলো আবার 6-এ স্যুইচ করুন এবং একই সিক্রেট একটি অথেন্টিকেটর অ্যাপ যা দেখাত সেই ঘূর্ণনশীল কোড তৈরি করে।
প্রশ্নোত্তর#
আমার কোড আমার ফোন অ্যাপের সাথে মেলে না। কী ভুল?#
প্রায় সবসময়ই সিক্রেট বা ঘড়ি। প্রথমে নিশ্চিত করুন Base32 সিক্রেটটি অভিন্স — পরিষেবার সেটআপ পৃষ্ঠা থেকে তা আবার কপি করুন, কারণ একটি একক ভুল অক্ষর সব পরিবর্তন করে। তারপর প্যারামিটারগুলো পরীক্ষা করুন: বেশিরভাগ পরিষেবা SHA-1, 6 সংখ্যা, 30-সেকেন্ড পর্ব ব্যবহার করে; যদি পরিষেবাটি SHA-256 বা 8 সংখ্যা ব্যবহার করে এবং আপনার কাছে SHA-1 / 6 নির্বাচিত থাকে, কোডগুলো ভিন্ন হবে। পরিশেষে, নিশ্চিত করুন আপনার ডিভাইসের ঘড়ি সঠিক — TOTP সামান্য তির্যকতা সহ্য করে, কিন্তু প্রায় 30 সেকেন্ডের বেশি বন্ধ হলে তা ভাঙবে।
TOTP এবং HOTP-র মধ্যে পার্থক্য কী?#
TOTP চলমান ফ্যাক্টর হিসেবে বর্তমান সময় ব্যবহার করে, তাই এটি প্রতিটি পর্বে স্বয়ংক্রিয়ভাবে এগিয়ে যায়। HOTP একটি সাধারণ কাউন্টার ব্যবহার করে যা প্রতিবার একটি কোড ব্যবহার করা হলে বৃদ্ধি পায়, তাই উভয় পক্ষকে অবশ্যই কতগুলো কোড ব্যবহার করা হয়েছে তার সমন্বয় রাখতে হবে। TOTP হলো আজ প্রায় প্রতিটি ভোক্তা 2FA প্রবাহ যা ব্যবহার করে, কারণ এটি ঘড়ির বাইরে কোনো সিঙ্ক্রোনাইজেশন প্রয়োজন করে না।
আমার সিক্রেট একটি ওয়েব পৃষ্ঠায় রাখা কি নিরাপদ?#
সিক্রেট কখনো এই পৃষ্ঠা ছাড়ে না — জেনারেশন, পার্সিং, এবং QR রেন্ডারিং সবই আপনার ব্রাউজারে স্থানীয়ভাবে চলে, কোনো নেটওয়ার্ক কল ছাড়াই। তা সত্ত্বেও, একটি প্রোডাকশন 2FA সিক্রেটের জন্য যা আপনি নিয়ন্ত্রণ করেন, নিরাপদ অনুশীলন হলো এটি তৈরি করা এবং এমন একটি পরিবেশে সংরক্ষণ করা যা আপনি সম্পূর্ণ বিশ্বাস করেন, যেকোনো ওয়েব পৃষ্ঠার বদলে, এবং পরিষেবা আপনাকে যে রিকভারি কোডগুলো দিয়েছে তা রাখা।
আমার otpauth:// URI পেস্ট করলে কেন সব পূরণ হয়ে যায়?#
সেই URI হলো মানক ফরম্যাট অথেন্টিকেটর অ্যাপগুলো বিনিময় করে: এটি এক স্ট্রিংয়ে ধরন, ইস্যুকারী, অ্যাকাউন্ট, সিক্রেট, অ্যালগরিদম, সংখ্যা, এবং পর্ব (বা কাউন্টার) এনকোড করে। পার্সারটি সেই ফিল্ডগুলো পড়ে এবং ফর্ম পপুলেট করে, যা ঠিক তখন ঘটে যখন আপনি আপনার ফোন দিয়ে একটি QR কোড স্ক্যান করেন — QR-টি হলো শুধু সেই URI-এর একটি ছবি হিসেবে রেন্ডার করা।