হ্যাশ ফাংশন হলো একটি গণিতীয় ফাংশন যা যেকোনো সাইজের ডেটা কে একটি ফিক্সড-সাইজ ভ্যালুর সাথে ম্যাপিং করে। এটা ডেটা এনক্রিপ্ট করা, ডিক্রিপ্ট করা, এবং ডেটা ভেরিফিকেশনের (data verification) জন্য ব্যবহার করা হয়।
হ্যাশ ফাংশনের প্রধান লক্ষ্য হলো ইনপুটের সম্পূর্ণ পরিবর্তন করে একটি ফিক্সড সাইজের হ্যাশ মান তৈরি করা। এটি একই ইনপুট এর জন্য সবসময় একই হ্যাশ ফাংশন তৈরি করবে । যদি ম্যাসেজ এ সামান্যতম পরিবর্তন হয় তাহলে এর পুরা হ্যাশ ভ্যালু পরিবর্তিত হয়ে যাবে। একখানে
এখন আমরা কয়েক প্রকার হ্যাশ ফাংশন নিয়ে আলোচোনা করবঃ
Cryptographic Hash Function
এই হ্যাশ ফাংশনগুলো বেশি সিকিউরড হয় এবং Digital Signature, MACs, এবং পাসওয়ার্ড স্টোরেজের মতো ক্রিপ্টোগ্রাফিক অ্যাপ্লিকেশনে ব্যবহৃত হয়। যেমন- SHA-1,SHA-2 এবং MD5 (MD5 এখন তুলনামুলকভাবে কম সিকিউরড হওয়ার কারণে দুর্বল বিবেচনা করা হয়)।
Non-cryptographic Hash Function
এই হ্যাশ ফাংশনগুলি ক্রিপ্টোগ্রাফিক নিরাপত্তার চেয়ে এর স্পীড এবং দক্ষতার উপর ভিত্তি করে বানানো হয়।যেসব আপ্লিকেশনে ক্রিপ্টোগ্রাফিক নিরাপত্তা অতটা দরকার হয় না সেসব জায়গায় এই এলগরিদমগুলো ব্যবহার করা হয়, যেমন ডেটা ইনডেক্সিং, চেকসাম, এবং হ্যাশ টেবিল। উদাহরণস্বরূপ MurmurHash এবং CityHash।
Cryptographic Hash Function For Password
কিছু হ্যাশ ফাংশন পাসওয়ার্ড সুরক্ষার জন্য বিশেষভাবে ডিজাইন করা হয়। এগুলি salting এবং সুরক্ষা বাড়ানোর জন্য বিভিন্ন ফিচার এড করে বানানো হয়। উদাহরণস্বরূপ bcrypt এবং Argon2।
হ্যাশ ফাংশনগুলি বিভিন্ন উদ্দেশ্যে ব্যবহার করা হয় , যেমন ডেটা স্ট্রাকচারের তালিকা, প্রথমত খোলার সময় তার দৈর্ঘ্য নির্ধারণ করতে, ডেটা সার্চ এবং প্রিন্টিং কার্যক্রমের সময় তাদের খোলার দরকার না হওয়া, এবং ডেটা ইনটেগ্রিটি চেক করতে।
Leave a Reply