পিএইচপিতে পাসওয়ার্ড হ্যাশিং

পাসওয়ার্ড খোলা আকারে সংরক্ষণ করা ভুল। হ্যাকার-দুশমন আপনার ডাটাবেসে অ্যাক্সেস পেতে পারে এবং পাসওয়ার্ড চুরি করতে পারে।

সেইজন্য সাধারণত লগিন খোলা আকারে সংরক্ষণ করা হয়, আর পাসওয়ার্ড হ্যাশ করা হয় একটি বিশেষ ফাংশন md5 দিয়ে, যা প্যারামিটার হিসেবে নেয় পাসওয়ার্ড, এবং রিটার্ন করে তার হ্যাশ, যার থেকে এই পাসওয়ার্ডটি পুনরুদ্ধার করা যায় না।

আসুন, উদাহরণস্বরূপ, কোনও স্ট্রিং এর হ্যাশ খুঁজে বের করি:

html<?php
  echo md5('12345'); // আউটপুট দেবে '827ccb0eea8a706c4c34a16891f84e7b'
?>

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

আসুন এখন আমাদের রেজিস্ট্রেশনটি ঠিক করি যাতে নতুন ইউজার সেভ করার সময় ডেটাবেসে পাসওয়ার্ড না যোগ হয়, বরং তার হ্যাশ যোগ হয়।

বর্ণিত সংশোধনটি কিছুটা এরকম দেখাবে:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // পাসওয়ার্ডকে তার হ্যাশে রূপান্তর করি
  
  $query = "INSERT INTO users SET login='$login', password='$password'";
?>

অথোরাইজেশনেও একইরকম সংশোধন করা যাক:

html<?php
  $login = $_POST['login'];
  $password = md5($_POST['password']); // পাসওয়ার্ডকে তার হ্যাশে রূপান্তর করি
    
  $query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
Задание 1

হ্যাশিং বিবেচনা করে রেজিস্ট্রেশনে পরিবর্তনগুলি আনুন, কয়েকটি নতুন ইউজার রেজিস্টার করুন, নিশ্চিত হন যে তারা ডাটাবেসে হ্যাশ করা পাসওয়ার্ড নিয়ে যোগ হয়েছে।

Задание 2

হ্যাশিং বিবেচনা করে অথোরাইজেশনে পরিবর্তনগুলি আনুন, আগে রেজিস্টার করা ইউজারদের অধীনে অথোরাইজ হতে চেষ্টা করুন।