টুল
গাইড

bcrypt হ্যাশ ও যাচাই

ক্রিপ্টো

bcrypt (অভিয়োজ্য cost) দিয়ে পাসওয়ার্ড হ্যাশ করুন, অথবা একটি বিদ্যমান $2a$ / $2b$ হ্যাশের সাথে সাধা পাঠ যাচাই করুন। সামঞ্জস্যযোগ্য cost, ক্যালিব্রেটেড সময় — সবকিছু আপনার ব্রাউজারে।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই

দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।

মোড
12

⚠ উচ্চতর cost ধীর এবং অধিক নিরাপদ

একটি পাসওয়ার্ড লিখুন, তারপর হ্যাশ ক্লিক করুন (cost %n)।
bcrypt

🔒 স্থানীয়ভাবে প্রক্রিয়াজাত — কিছুই ব্রাউজার ছেড়ে যায় না
এই পৃষ্ঠায়

bcrypt কী?#

bcrypt হলো একটি পাসওয়ার্ড-হ্যাশিং ফাংশন যা বিশেষভাবে ইচ্ছাকৃতভাবে ধীর হতে তৈরি। যেখানে SHA-256-এর মতো একটি দ্রুত হ্যাশ প্রতি সেকেন্ডে মেগাবাইট থ্রুপুট করতে ডিজাইন করা, bcrypt ডিজাইন করা হয়েছে প্রতিটি একক অনুমানে প্রকৃত সময় ব্যয় করতে — যাতে একজন আক্রমণকারী যে পাসওয়ার্ড হ্যাশের একটি ডেটাবেস চুরি করে সে সস্তায় কয়েক শত কোটি অনুমান চেষ্টা করতে না পারে। এটি “আমি কীভাবে ব্যবহারকারী পাসওয়ার্ড সংরক্ষণ করব”-এর মানক উত্তর: সেগুলোকে bcrypt দিয়ে হ্যাশ করুন, প্লেইন SHA-256 দিয়ে নয়।

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

এই পৃষ্ঠাটি উভয় অপারেশন করে: একটি পাসওয়ার্ডকে একটি bcrypt স্ট্রিংয়ে হ্যাশ করুন, এবং একটি বিদ্যমান হ্যাশের বিরুদ্ধে একটি পাসওয়ার্ড যাচাই করুন। পৃষ্ঠাটিকে প্রতিক্রিয়াশীল রাখতে, cost 12 বা তার উপরে হ্যাশিং একটি Web Worker-এ অফলোড করা হয়, তাই ভারী গণনা কখনো ইন্টারফেস ফ্রিজ করে না।

ব্যবহারবিধি#

  1. একটি মোড বেছে নিন: হ্যাশ (একটি পাসওয়ার্ড থেকে একটি bcrypt স্ট্রিং তৈরি করুন) বা যাচাই (একটি বিদ্যমান হ্যাশের বিরুদ্ধে একটি পাসওয়ার্ড যাচাই করুন)।
  2. পাসওয়ার্ড টাইপ করুন। টাইপ করার সময় প্রকাশ করতে চোখ আইকনে ক্লিক করুন; এটি ডিফল্টভাবে মাস্ক করা। UTF-8 গ্রহণযোগ্য, ইমোজি এবং নন-লাতিন লিপি সহ।
  3. হ্যাশ মোডে, cost স্লাইডার সেট করুন (4–14, ডিল্ট 12)। উচ্চতর ধীর এবং শক্তিশালী। একবার cost লক্ষণীয় সময় নেওয়ার মতো যথেষ্ট উঁচু হলে একটি সতর্কতা উপস্থিত হয়।
  4. যাচাই মোডে, উপস্থিত হওয়া ফিল্ডে বিদ্যমান হ্যাশ পেস্ট করুন। cost স্বয়ংক্রিয়ভাবে হ্যাশ থেকে পড়া হয় — আপনি এটি সেট করেন না।
  5. প্রাথমিক বোতামটি ক্লিক করুন। হ্যাশ মোডে আউটপুট হলো bcrypt স্ট্রিং; যাচাই মোডে আউটপুট হলো একটি স্পষ্ট মিল / মেলেনি রায়, এবং একটি অতিবাহিত-সময় রিডআউট যা আপনাকে আপনার নিজস্ব হার্ডওয়্যারে cost বিচার করতে সাহায্য করে।

মূল বৈশিষ্ট্য#

  • সমন্বয়যোগ্য cost, 4–14। 12-এর ডিফল্ট হলো আধুনিক সুপারিশ; প্রতিটি ধাপ প্রায় কাজ দ্বিগুণ করে, তাই আপনি বছরের পর বছর দ্রুততর হার্ডওয়্যারের সাথে তাল মিলিয়ে চলতে পারেন।
  • উচ্চ cost-এ ওয়ার্কার অফলোড। Cost 12 এবং তার উপরে একটি Web Worker-এ চলে যাতে পৃষ্ঠাটি প্রতিক্রিয়াশীল থাকে; ওয়ার্কারদের অবরুদ্ধ করা হলে, এটি স্বচ্ছভাবে একই ফলাফল সহ মূল থ্রেডে ফিরে যায়।
  • অন্তর্নির্মিত সল্ট। প্রতিটি হ্যাশ আউটপুটে এনকোড করা একটি নতুন এলোমেলো সল্ট পায়, তাই একই পাসওয়ার্ড কখনো দুবার একই স্ট্রিংয়ে হ্যাশ হয় না।
  • স্বয়ংক্রিয় cost সহ যাচাই। cost ফ্যাক্টরটি আপনার পেস্ট করা হ্যাশ থেকে পার্স করা হয়, তাই একটি পাসওয়ার্ড কীভাবে হ্যাশ করা হয়েছিল এবং কীভাবে যাচাই করা হচ্ছে তার মধ্যে কোনো অমিল নেই।
  • শূন্য আপলোড। হ্যাশিং এবং যাচাইকরণ স্থানীয়ভাবে ঘটে; পাসওয়ার্ড কখনো পৃষ্ঠা ছাড়ে না।

ব্যবহারিক উদাহরণ#

নিচে hunter2-এর cost 12-এ একটি বাস্তব হ্যাশ, এই পৃষ্ঠাতেই তৈরি। যেহেতু সল্ট নতুন এলোমেলো, hunter2 আবার হ্যাশ করলে আপনাকে একটি ভিন্ন স্ট্রিং দেবে — কিন্তু এটি সত্যিকারের এবং যাচাইযোগ্য: এটি যাচাই মোডে পেস্ট করুন, hunter2 টাইপ করুন, এবং রায় হলো ✓ মিলেছে

$2b$12$DG/IWIDBmJlywamLdGno2.guEH5lGnQ1OTULdIGN8BH1vqiLIGzjy

এটি ফিল্ডে ফিল্ডে পড়া:

  • $2b$ — bcrypt ভেরিয়েন্ট (bcryptjs $2b$ নির্গত করে; যাচাই এছাড়াও $2a$, $2x$, $2y$ গ্রহণ করে)।
  • 12 — cost ফ্যাক্টর, অর্থাৎ 2^12 কী-সম্প্রসারণ রাউন্ড।
  • পরের 22 অক্ষর — এলোমেলো সল্ট।
  • শেষ 31 অক্ষর — উদ্ভূত হ্যাশ।

যাচাই-তে স্যুইচ করুন, উপরের হ্যাশটি বিদ্যমান-হ্যাশ ফিল্ডে ফেলুন, hunter2 টাইপ করুন, এবং রায় হলো ✓ মিলেছে। তার বদলে Hunter2 টাইপ করুন এবং এটি ✗ মেলেনি — bcrypt কেস-সংবেদনশীল, এবং একটি একক ভুল অক্ষর ফলাফল উল্টে দেয়। পাশে দেখানো অতিবাহিত-সময়ের পরিসংখ্যানটি হলো আপনার মেশিনে cost 12-এ একটি যাচাইকরণের প্রকৃত খরচ।

প্রশ্নোত্তর#

আমার কোন cost বেছে নেওয়া উচিত?#

আজকের নতুন সিস্টেমের জন্য 12 একটি শক্ত ডিফল্ট — এটি সাধারণ হার্ডওয়্যারে প্রায় কয়েকশো মিলিসেকেন্ড নেয়, যা একটি প্রকৃত লগইনের জন্য যন্ত্রণাহীন কিন্তু বাল্ক অনুমানের জন্য যন্ত্রণাদায়ক। উচ্চ-মূল্যের লক্ষ্যগুলোর জন্য যেখানে একটি সামান্য ধীর লগইন গ্রহণযোগ্য সেখানে তা 13 বা 14-এ বাড়ান। মূল নিয়ম হলো হার্ডওয়্যার উন্নতির সাথে সাথে বছরের পর বছর পুনরায় উপরের দিকে সমন্বয় করা, কারণ bcrypt-এর cost সূচকীয়ভাবে স্কেল করে: 1-এর প্রতিটি বৃদ্ধি প্রায় সময় দ্বিগুণ করে।

একই পাসওয়ার্ড দুবার হ্যাশ করলে কেন ভিন্ন ফলাফল দেয়?#

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

আমি কি অন্য কোথাও তৈরি একটি হ্যাশ যাচাই করতে পারি?#

হ্যাঁ, যতক্ষণ না এটি একটি সু-গঠিত bcrypt স্ট্রিং ($2a$, $2b$, $2x$, বা $2y$)। যাচাই মোডে বিদ্যমান-হ্যাশ ফিল্ডে পেস্ট করুন; টুলটি হ্যাশ থেকেই cost এবং সল্ট পড়ে। Node-এর bcrypt, PHP-এর password_hash, বা Python-এর passlib থেকে রপ্তানি করা হ্যাশ সব এখানে কাজ করে।

bcrypt কি পাসওয়ার্ডের জন্য SHA-256-এর চেয়ে ভালো?#

লগইন পাসওয়ার্ড সংরক্ষণের জন্য, হ্যাঁ — জোর দিয়ে। SHA-256 দ্রুত, যা ঠিক একটি সংরক্ষিত পাসওয়ার্ড হ্যাশের জন্য ভুল বৈশিষ্ট্য: হ্যাশ সহ একজন আক্রমণকারী একটি GPU-তে প্রতি সেকেন্ডে কয়েক শত কোটি অনুমান চেষ্টা করতে পারে। bcrypt ইচ্ছাকৃতভাবে ধীর এবং সল্টযুক্ত, যা পাসওয়ার্ড সংরক্ষণ দাবি করে। অখণ্ডতা এবং স্বাক্ষরের জন্য SHA-256 ব্যবহার করুন; মানব পাসওয়ার্ডের জন্য bcrypt (বা এর কাজিন Argon2/scrypt) ব্যবহার করুন।