হ্যাশ অ্যালগরিদম (Hash Algorithm) কী?
হ্যাশ অ্যালগরিদম হল একটি গাণিতিক ফাংশন যা যেকোনো আকারের ইনপুট ডেটা (মেসেজ) लेकर একটি নির্দিষ্ট দৈর্ঘ্যের অনন্য স্ট্রিং আউটপুট তৈরি করে, যাকে হ্যাশ ভ্যালু, মেসেজ ডাইজেস্ট বা চেকসাম বলা হয়। এটি একটি ওয়ান-ওয়ে (one-way) ফাংশন: হ্যাশ থেকে মূল ডেটা বের করা কম্পিউটেশনালি অসম্ভব।
হ্যাশিং কীভাবে কাজ করে?
ইনপুট ডেটা বাইনারি ফরম্যাটে রূপান্তরিত হয় → হ্যাশ ফাংশন প্রসেস করে → ফিক্সড-লেন্থ আউটপুট (যেমন ২৫৬ বিট) জেনারেট করে। একই ইনপুট সবসময় একই হ্যাশ দেবে। ইনপুটে অল্প পরিবর্তন (Avalanche Effect) হ্যাশকে সম্পূর্ণ পরিবর্তন করে দেবে।
প্রচলিত হ্যাশ অ্যালগরিদম ও তাদের বৈশিষ্ট্য
| অ্যালগরিদম | আউটপুট সাইজ | স্থিতি | ব্যবহার ক্ষেত্র |
|---|---|---|---|
| MD5 | 128-bit | ভাঙা (Broken) - কলিশন আক্রমণ সম্ভব | লিগেসি সিস্টেম, ফাইল ইন্টিগ্রিটি চেক (নন-সিকিউরিটি) |
| SHA-1 | 160-bit | ডিপ্রিকেড (Deprecated) - কলিশন প্রুভড | Git কমিট, পুরানো TLS সার্টিফিকেট (ফেজ আউট) |
| SHA-256 (SHA-2) | 256-bit | সুরক্ষিত ও প্রস্তাবিত (NIST) | TLS/SSL, বিটকয়েন, ডিজিটাল সিগনেচার, পাসওয়ার্ড স্টোরেজ |
| SHA-384 | 384-bit | সুরক্ষিত | উচ্চ সিকিউরিটি প্রয়োজনীয় সিস্টেম |
| SHA-512 | 512-bit | সুরক্ষিত | ৬৪-বিট আর্কিটেকচারে অপ্টিমাইজড |
| SHA-3 (Keccak) | 224/256/384/512-bit | সর্বাধিক আধুনিক ও সুরক্ষিত | ভবিষ্যতের প্রুফ সিকিউরিটি, ব্লকচেইন |
| Bcrypt | 184-bit (configurable) | পাসওয়ার্ড হ্যাশিং এর জন্য সেরা | পাসওয়ার্ড স্টোরেজ (সল্ট + কস্ট ফ্যাক্টর) |
| Argon2 | Configurable | পাসওয়ার্ড হ্যাশিং কম্পিটিশন বিজয়ী (২০১৫) | সর্বোত্তম পাসওয়ার্ড হ্যাশিং (মেমরি-হার্ড) |
হ্যাশিং এর মূল ব্যবহার 網絡 সিকিউরিটিতে
- পাসওয়ার্ড স্টোরেজ: প্লেইনটেক্সট পাসওয়ার্ড না রাখে হ্যাশ (সল্টসহ) স্টোর করা।
- ডেটা ইন্টিগ্রিটি ভেরিফিকেশন: ফাইল ডাউনলোড/ট্রান্সফারের পর হ্যাশ মিলিয়ে করপশন যাচাই।
- ডিজিটাল সিগনেচার ও সার্টিফিকেট: ডকুমেন্ট হ্যাশ করে প্রাইভেট কী দিয়ে সাইন।
- ব্লকচেইন ও ক্রিপ্টোকারেন্সি: ব্লক হ্যাশিং, প্রুফ-অফ-ওয়ার্ক।
- HMAC (Hash-based Message Authentication Code): মেসেজ অথেন্টিসিটি নিশ্চিত করা।
সেরা অনুশীলন (Best Practices)
- পাসওয়ার্ডের জন্য Argon2id, Bcrypt বা PBKDF2 ব্যবহার করুন (সহজ হ্যাশ MD5/SHA নয়)।
- প্রতিটি পাসওয়ার্ডের জন্য অনন্য সল্ট (Salt) ব্যবহার করুন।
- TLS/SSL, ডিজিটাল সিগনেচার, সার্টিফিকেটের জন্য SHA-256 বা SHA-3 ব্যবহার করুন।
- MD5, SHA-1 সিকিউরিটি-ক্রিটিক্যাল কাজে ব্যবহার করবেন না।
- হ্যাশ আউটপুট হেক্স বা বেস৬৪ এনকোড করে স্টোর/ট্রান্সমিট করুন।