ডেটাবেজে পাসওয়ার্ড সংরক্ষণঃ


আস্সালামু আলাইকুম

বর্তমান যুগে আমরা ইন্টারনেটে বিচরণ কালে বিভিন্ন ধরনের ওয়েবসাইটের আওতাভুক্ত হতে হয় মানে Sign Up করতে হয়।  Sign Up করার সময় আমাদের Password দিতে হয় , যেটা খুবই গুরুত্বপর্ণ একটা ইস্যূ। আসলে এই পাসওয়ার্ড ব্যবহার করা হয় নিরাপত্তা জনিত কারণে।
ডেটাবেজে আসলে পাসওয়ার্ড কখনও সরাসরি সংরক্ষণ করতে হয় না। করলে কী সমস্যা? হে তখন যদি এই ডেটাবেজের একসেস কেউ পেয়ে যায় তখন আপনার একাউন্টটি হ্যাক হয়ে যাবে। আমরা অনেক সময় একই পাসওয়ার্ড বিভিন্ন জায়গায় ব্যবহার করি তখন আমাদের সমস্ত কিছু হ্যাক হওয়ার সম্ভাবনা থাকে। তাই ডেটাবেজে কখনো সরাসরি পাসওয়ার্ড সেভ করতে হয় না, তাই ডেটাবেজে পাসওয়ার্ড সেভ করার জন্য সাধারণত পাসওয়ার্ডকে একটি হ্যাশ ফাংশনের মাধ্যমে পরিবর্তন করে তারপরে সেভ করতে হয়। এতে করে কেউ ডেটাবেজে একসেস পেয়ে গেলেও আসল পাসওয়ার্ড জানতে পারবে না। এজন্য ডেটাবেজে পাসওয়ার্ড সংরক্ষণ কারার জন্য একটা নির্দিষ্ট অ্যালগরিদম মানা হয়।অ্যালগরিদমটি নিন্মরূপঃ

*  ধরি আমরা Sign Up করার সময় ইউজারনেম ( USER) এবং পাসওয়ার্ড ( PASS) দিলাম। এখানে USER & PASS দুটিই কিন্তু স্ট্রিং ( String )।

* এই PASS-কে একটি হ্যাশ ফাংশনের মাধ্যমে আরেকটি স্ট্রিং Hashpass-তে রূপান্তর করা হলো। এই হ্যাশিং এর পুরো কাজটি হয় ব্যাক-এন্ডে। ব্যাক-এন্ডে পাসওয়ার্ড হ্যাশিং এর জন্য কিছু সুনির্দিষ্ট হ্যাশ ফাংশন ব্যবহার করা হয় । যাতে কেউ Hashpass জানতে পারলেও আসল পাসওয়ার্ড ( PASS ) টা জানতে পারবে না।{ জনপ্রিয় কিছু হ্যাশিং অ্যালগরিদম হলো ( SHA-256, MD5, SALT, Bcrypt, Base64 ইত্যাদি )।}

*  ডেটাবেজে ইজারনেম ( USER ) এবং পাসওয়ার্ড ( PASS ) সেভ করা হলো।

আমাদের একাউন্ট তৈরি হয়ে গেল , এবার লগ-ইন করার পালা। লগ-ইন করার সময় যেভাবে পাসওয়ার্ড পরীক্ষা করা হয়ঃ

# লগিন করার সময় ইউজারনেম ( USER )এবং পাসওয়ার্ড ( PASS ) দেওয়া হলো।

# একাউন্ট তৈরির সময় পাসওয়ার্ডের জন্য যেই হ্যাশ অ্যালগরিদম ব্যবহার করা হয়েছিল, একই অ্যালগরিদম ব্যবহার করে PASS -কে  PASShash এ রূপান্তর করা হয়।

# ডেটাবেজে ইজারনেম ( USER ) এর মাধ্যমে কুয়েরি চালিয়ে ইউজারনেম ( USER ) -এর সাথে যেই ( Hashpass ) বা হ্যাশ করা পাসওয়ার্ড যেটি ছিল , সেটি বের করে আনা হয়। সেটির নাম কিন্তু আমরা দিয়ে ছিলাম Hashpass ।

#  এখন এই আগের হ্যাশ করা পাসওয়ার্ড বা Hashpass এবং লগ-ইন এর সময়  হ্যাশ করা পাসওয়ার্ড মানে PASShash  স্ট্রিং দুটি সমান হয়েছে কিনা অর্থ্যাৎ ( Hashpass == PASShash ) সেটা পরীক্ষা করা হয়।

# Hashpass ও PASShash স্ট্রিং দুটি যদি সমান হয়, তাহলে পাসওয়ার্ড সঠিক । আর তখনই আপনাকে প্রবেশাধিকার দেওয়া হয়।


আমার পছন্দের প্রোগ্রামিং ল্যাংগুয়েজ ( Golang ) দিয়ে লিখা ছোট্ট একটি হ্যাশ কোডঃ


Output:



আজ এতুটুকুই ভালো থাকবেন, আল্লাহ হাফেজ।