মাইএসকিউএলআই (MySQLi) এর মাধ্যমে পাসওয়ার্ড এবং অন্যান্য সংবেদনশীল ডেটা সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ। এনক্রিপশন (Encryption) পদ্ধতিগুলি পাসওয়ার্ড এবং ব্যক্তিগত তথ্য নিরাপদ রাখতে সহায়ক। এখানে, আমরা দেখব কীভাবে MySQLi ব্যবহার করে পাসওয়ার্ড এবং অন্যান্য সংবেদনশীল ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করা যায়।
পাসওয়ার্ড এনক্রিপশন
পাসওয়ার্ড সংরক্ষণে কখনোই সরাসরি টেক্সট ফর্মে ডেটা সংরক্ষণ করা উচিত নয়। পাসওয়ার্ড এনক্রিপ্ট করার জন্য PHP এর password_hash() এবং password_verify() ফাংশন ব্যবহার করা হয়। এই পদ্ধতি একদিকে যেমন নিরাপদ, তেমনি পাসওয়ার্ডের অখণ্ডতা বজায় রাখে।
পাসওয়ার্ড হ্যাশিং (Hashing) :
পাসওয়ার্ড হ্যাশ করার জন্য PHP এর password_hash() ফাংশন ব্যবহার করা হয়। এটি পাসওয়ার্ডকে একটি নির্দিষ্ট এবং একমুখী হ্যাশ ফর্মে কনভার্ট করে যা ডেটাবেসে সংরক্ষণ করা যায়।
<?php
// পাসওয়ার্ড হ্যাশ করা
$password = "user_password";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// ডেটাবেসে সংরক্ষণ করা
$query = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $username, $hashed_password);
$stmt->execute();
?>
পাসওয়ার্ড যাচাইকরণ (Verification) :
পাসওয়ার্ড যাচাই করার জন্য PHP এর password_verify() ফাংশন ব্যবহার করা হয়। এটি প্রেরিত পাসওয়ার্ডের সাথে ডেটাবেসে থাকা হ্যাশ পাসওয়ার্ডের মিল খুঁজে বের করে।
<?php
// পাসওয়ার্ড যাচাই করা
$input_password = "user_password";
$stored_hashed_password = $row['password']; // ডেটাবেস থেকে পাওয়া হ্যাশ পাসওয়ার্ড
if (password_verify($input_password, $stored_hashed_password)) {
echo "পাসওয়ার্ড সঠিক";
} else {
echo "পাসওয়ার্ড ভুল";
}
?>
সংবেদনশীল ডেটা এনক্রিপশন
সংবেদনশীল ডেটা যেমন কৃত্রিম পাসওয়ার্ড বা ক্রেডিট কার্ড নম্বরের ক্ষেত্রে এনক্রিপশন প্রয়োজন। PHP এর openssl_encrypt() এবং openssl_decrypt() ফাংশন ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করা যায়।
ডেটা এনক্রিপশন:
<?php
$data = "Sensitive Information";
$key = "encryption_key";
// এনক্রিপশন করার জন্য openssl_encrypt() ব্যবহার
$encrypted_data = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
?>
ডেটা ডিক্রিপশন:
<?php
// ডিক্রিপশন করার জন্য openssl_decrypt() ব্যবহার
$decrypted_data = openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
?>
সারসংক্ষেপ
পাসওয়ার্ড এবং সংবেদনশীল ডেটা এনক্রিপ্ট ও হ্যাশ করার মাধ্যমে, আমরা সেগুলিকে নিরাপদ রাখতে পারি। MySQLi এর সাথে PHP এর password_hash() এবং openssl_encrypt() ফাংশন ব্যবহার করে, ডেটা সুরক্ষা নিশ্চিত করা সম্ভব।