شیوه تبدیل رمز عبور (password) کاربر به رمز عبور ذخیره شده در پایگاه داده MySQL ، در انجمن mybb
همان طور که می دانید، در یکی از جدول های (tables) پایگاه داده مربوط به انجمن mybb ، اطلاعات کاربران، مثل نام کاربری (username)، رمز عبور (password) و سایر اطلاعات کاربران ذخیره می شود. اگر نگاهی به این جدول بیندازید، رمز عبور (password) ذخیره شده در آن، با رمز واقعی کاربران، متفاوت است. دلیل این تفاوت، تغییر رمز عبور، هنگام ذخیره در پایگاه داده، برای امنیت بیشتر می باشد.
هنگامی که قصد داشته باشیم که قابلیت هایی را به انجمن mybb اضافه کنیم، ممکن است که به شیوه ساخت این رمز عبور ذخیره شده، نیاز داشته باشیم. بنابراین شیوه کلی را در زیر ذکر می کنیم :
$plain_pass = "123456";
$salt = "abcdefgh";
$stored_pass = md5(md5($salt).md5($plain_pass));
echo $stored_pass;
?>
در کدهای بالا، $plain_pass همان رمز عبور (password) واقعی کاربر است و $salt ، مقداری است که برای هر کاربر متفاوت می باشد و در همان جدول (table) مربوط به اطلاعات کاربران انجمن، ذخیره شده است (در کد بالا، یک مقدار فرضی را نوشته ایم). بنابراین وقتی کاربر، رمز واقعی خود را وارد می کند، باید ابتدا مقدار $salt را برای آن کاربر از جدول پایگاه داده بخوانیم و سپس با شیوه فوق، رمز عبور ذخیره شده را بسازیم و سپس با مقایسه مقدار حاصل شده با مقدار موجود در جدول پایگاه داده، تشخیص بدهیم که آیا پسورد صحیح است یا خیر.