§

Bcrypt জেনারেটর

§

Bcrypt হ্যাশ জেনারেট করুন

10 (1,024 rounds)

বাংলাদেশ ও পশ্চিমবঙ্গের ওয়েব ডেভেলপমেন্টে পাসওয়ার্ড সংরক্ষণের জন্য Bcrypt ব্যাপকভাবে ব্যবহৃত হয়। Rails-এর has_secure_password ডিফল্টভাবে bcrypt ব্যবহার করে, Django এবং Node.js-এও bcrypt সমর্থিত। NIST SP 800-63B পাসওয়ার্ড স্টোরেজের জন্য মেমোরি-হার্ড হ্যাশিং সুপারিশ করে, এবং OWASP bcrypt-কে Argon2id-এর পাশাপাশি একটি পছন্দের বিকল্প হিসেবে তালিকাভুক্ত করে। কস্ট ফ্যাক্টর নিয়ন্ত্রণ করে একটি হ্যাশ তৈরি করতে কত সময় লাগবে — কস্ট ১০ (2^10 = 1024 রাউন্ড) বর্তমান প্রস্তাবিত মান, যেখানে ১২ (4096 রাউন্ড) অ্যাডমিন পোর্টাল ও আর্থিক সিস্টেমের জন্য উপযুক্ত। এই টুলটি সম্পূর্ণরূপে JavaScript-এর মাধ্যমে আপনার ব্রাউজারে চলে — পাসওয়ার্ড কখনো আপনার ডিভাইস ছেড়ে যায় না।

Bcrypt কী?

Bcrypt একটি পাসওয়ার্ড-হ্যাশিং ফাংশন যা Niels Provos এবং David Mazières Blowfish সাইফারের উপর ভিত্তি করে ডিজাইন করেছেন। MD5 বা SHA-256-এর মতো দ্রুত ডাইজেস্টের বিপরীতে, bcrypt ইচ্ছাকৃতভাবে ধীর এবং গণনাগতভাবে ব্যয়বহুল — এটি চুরি করা পাসওয়ার্ড হ্যাশের বিরুদ্ধে ব্রুট-ফোর্স আক্রমণকে অবাস্তব করে তোলে। Bcrypt প্রতি পাসওয়ার্ডে স্বয়ংক্রিয়ভাবে একটি এলোমেলো সল্ট জেনারেট করে, তাই অভিন্ন পাসওয়ার্ড ভিন্ন ভিন্ন হ্যাশ তৈরি করে।

Bcrypt কীভাবে কাজ করে?

Bcrypt অ্যালগরিদম সম্পূর্ণরূপে আপনার ব্রাউজারে চলে। ধাপে ধাপে যা ঘটে তা নিচে বর্ণিত হলো:

  1. আপনার পাসওয়ার্ড UTF-8 বাইট হিসেবে এনকোড হয় এবং bcrypt কী শিডিউলে প্রদান করা হয়, যা পাসওয়ার্ড ও সল্ট ব্যবহার করে Blowfish সাইফারের ৪,১৮৪-বাইট P-array ও S-boxes আরম্ভ করে।
  2. একটি এলোমেলো ১২৮-বিট সল্ট জেনারেট হয়। সল্টটি কী শিডিউলে মিশ্রিত করা হয় যাতে প্রতিটি অনন্য সল্ট একই পাসওয়ার্ডের জন্যও সম্পূর্ণ ভিন্ন হ্যাশ তৈরি করে।
  3. কী শিডিউল 2^cost রাউন্ডের জন্য পুনরাবৃত্ত হয় (যেমন, কস্ট ১০-এর জন্য 2^10 = ১,০২৪ পুনরাবৃত্তি)। প্রতিটি পুনরাবৃত্তি সল্ট ও P-array এন্ট্রি পুনরায় এনক্রিপ্ট করে, যা কস্ট বাড়ার সাথে সাথে গণনা ধীর করে দেয়।
  4. চূড়ান্ত আউটপুট $2b$<cost>$<salt><hash> ফরম্যাটে ৬০-অক্ষরের একটি স্ট্রিং, যেখানে কস্ট শূন্য-প্যাডেড (যেমন, ১০), সল্ট ২২টি Base64 অক্ষর, এবং হ্যাশ ৩১টি Base64 অক্ষর।
  5. যাচাইকরণের জন্য, একই অ্যালগরিদম প্রার্থী পাসওয়ার্ড ও সংরক্ষিত হ্যাশ থেকে নিষ্কাশিত সল্টের সাথে পুনরায় চালানো হয়। যদি উৎপন্ন হ্যাশ সংরক্ষিত হ্যাশের সাথে মেলে, তবে পাসওয়ার্ড সঠিক।

আমার কোন কস্ট ফ্যাক্টর ব্যবহার করা উচিত?

কস্ট ফ্যাক্টর হলো পুনরাবৃত্তি সংখ্যার লগারিদম — কস্ট ১০ মানে 2^10 = ১,০২৪ রাউন্ড, কস্ট ১২ মানে ৪,০৯৬ রাউন্ড। আপনার নিরাপত্তা প্রয়োজনীয়তা ও হার্ডওয়্যার অনুযায়ী বেছে নিন:

  • কস্ট ৪-৬ (১৬-৬৪ রাউন্ড) — শুধুমাত্র ডেভেলপমেন্ট ও টেস্টিংয়ের জন্য। প্রোডাকশনের জন্য খুব দ্রুত; ন্যূনতম সুরক্ষা প্রদান করে।
  • কস্ট ৮ (২৫৬ রাউন্ড) — অ-গুরুত্বপূর্ণ অ্যাপ্লিকেশনের জন্য ন্যূনতম। আধুনিক হার্ডওয়্যারে প্রায় ৬ms।
  • কস্ট ১০ (১,০২৪ রাউন্ড) — বর্তমান প্রস্তাবিত ভিত্তি রেখা। প্রায় ২৫ms লাগে। বেশিরভাগ ওয়েব অ্যাপ্লিকেশনের জন্য উপযুক্ত।
  • কস্ট ১২ (৪,০৯৬ রাউন্ড) — অ্যাডমিন পোর্টাল, আর্থিক সিস্টেম ও উচ্চ-নিরাপত্তা অ্যাপের জন্য প্রস্তাবিত। প্রায় ১০০ms লাগে।
  • কস্ট ১৪ (১৬,৩৮৪ রাউন্ড) — উচ্চ নিরাপত্তা। প্রায় ৪০০ms লাগে। মাস্টার পাসওয়ার্ড, এনক্রিপশন কী বা যখন লগইন লেটেন্সি গ্রহণযোগ্য, তখন ব্যবহার করুন।

কেন এই bcrypt জেনারেটর ব্যবহার করবেন?

  • আপনার গোপনীয়তা সুরক্ষিত — প্রতিটি পাসওয়ার্ড আপনার ব্রাউজারে স্থানীয়ভাবে হ্যাশ হয় এবং কোনো ডেটা আপনার ডিভাইস ছেড়ে যায় না।
  • আপনি দুটি মোড পাশাপাশি পান: নতুন হ্যাশ জেনারেট করুন বা বিদ্যমান হ্যাশ যাচাই করুন পৃষ্ঠা পরিবর্তন না করেই।
  • কস্ট ফ্যাক্টর ৪ (দ্রুত) থেকে ১৫ (অত্যন্ত ধীর) পর্যন্ত সামঞ্জস্যযোগ্য, তাই আপনি আপনার অ্যাপ্লিকেশনের নিরাপত্তা প্রয়োজনীয়তার সাথে মেলাতে পারেন।
  • হ্যাশগুলি আদর্শ $2b$ ফরম্যাট ব্যবহার করে যা প্রতিটি প্রধান ভাষা ও ফ্রেমওয়ার্কের সাথে কাজ করে।

Bcrypt-এর সাধারণ প্রয়োগগুলি কী কী?

শিল্পজুড়ে পাসওয়ার্ড সংরক্ষণ ও যাচাইকরণের জন্য Bcrypt ব্যাপকভাবে ব্যবহৃত হয়:

  • ওয়েব অ্যাপ্লিকেশন প্রমাণীকরণ — ডেটাবেসে ব্যবহারকারীর পাসওয়ার্ড হ্যাশ সংরক্ষণ করা যাতে প্লেইনটেক্সট পাসওয়ার্ড কখনো সংরক্ষিত না হয়।
  • API কী হ্যাশিং — API গোপনীয়তা সংরক্ষণের আগে হ্যাশ করা, যাতে ডেটাবেস লঙ্ঘনে বৈধ ক্রেডেনশিয়াল ফাঁস না হয়।
  • মাইগ্রেশন অডিটিং — পুরনো সিস্টেমের লিগ্যাসি পাসওয়ার্ড হ্যাশ অথ লেয়ার আপগ্রেডের পরও ব্যবহারকারীদের প্রমাণীকরণ করতে পারে কিনা তা যাচাই করা।

Bcrypt হ্যাশ দেখতে কেমন?

পাসওয়ার্ড hunter2 কে কস্ট ফ্যাক্টর ১০ দিয়ে হ্যাশ করলে একটি স্ট্রিং পাওয়া যায় যেমন $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy। ফরম্যাটটি নিম্নরূপে বিভক্ত: $2b$ (অ্যালগরিদম সংস্করণ), ১০ (কস্ট ফ্যাক্টর), $, তারপর ২২ অক্ষরের সল্ট ও ৩১ অক্ষরের হ্যাশ, সবই Base64-এনকোডেড। এলোমেলো সল্টের কারণে একই পাসওয়ার্ড দিয়ে প্রতিবার ভিন্ন হ্যাশ তৈরি হয়।

এই bcrypt জেনারেটর সম্পূর্ণরূপে আপনার ব্রাউজারে একটি বিশুদ্ধ-JavaScript বাস্তবায়ন ব্যবহার করে চলে। পাসওয়ার্ড সংরক্ষণের আগে হ্যাশ করুন, বিদ্যমান হ্যাশ যাচাই করুন এবং কস্ট ফ্যাক্টর আপনার নিরাপত্তা প্রয়োজনীয়তা অনুযায়ী সামঞ্জস্য করুন — একটি বাইটও সার্ভারে না পাঠিয়ে।