برای پیاده سازی امکان تغییر رمز کاربران در زبان php راهکارها و الگوریتم های مختلفی وجود دارد که من میخوام یکی از ساده ترین روش هارو خدمتتون توضیح بدم که در این روش ما از دوتابع داخلی php هم بنامهای زیر استفاده میکنیم :

rand(1,100);

 

md5("رشته ای که می خواهید تبدیل به هش کد شود");

روش کار به این صورت هست که شما باید در بخشی از سایتتان دکمه ای رو برای تغییر رمز قرار دهید که معمولا برنامه نویسان این دکمه را در فرم لاگین کنار دکمه ورود قرار میدهند تا کاربران در صورت فراموشی رمز عبور بر روی این دکمه یا لینک کلیک نمایند، این دکمه بایستی کاربر رو به یک صفحه از سایتتان هدایت نماید . در این صفحه باید یک عنصر input قرار دهید تا کاربر ایمیل خودش رو وارد کنه ، و یک دکمه هم برای ارسال این فرم که حاوی فقط یک ورودی هست(ایمیل وارد شده کاربر) به سرور سابمیت کند در سمت سرور یعنی همان صفحه ای که فرم حاوی ایمیل واردشده کاربر به آن سابمیت شده بایستی ابتدا بررسی کنیم ببینیم اصلا چنین ایمیلی در بانک هست یا نه ، اگر بود باید یک کد طولانی بصورت تصادفی تولید کنیم و به ایمیل کاربر ارسال کنیم تا کاربر وارد ایمیل خودش بشه و اون کد رو کپی کنه و در صفحه دیگری از سایتمون که برای مرحله دوم تغییر رمز ساختیم وارد کنه تا بفهمیم که کاربر صاحب اکانت هست و در همان صفحه مرحله دوم تغییر رمز یا حتی یک صفحه سوم دیگر رمز جدید رو از کاربر بگیرید و در بانک ثبت نمائید.

 

راهنمای تولید عدد تصادفی : 

برای تولید این عدد در php میتونید از تابع توکار خود php استفاده کنید ( بشکل زیر )

 

$rnd_number=rand();

 

 

من پیشنهاد می کنم برای امنیت بیشتر عدد رو بصورت هش شده به ایمیل کاربر ارسال کنید ، چون عدد هش شده دارای 32 کاراکتر میباشد و حدس زدن اون هم امکانپذیر نیست .

برای تبدیل عدد تصادفی تولیدی بالا به کد هش از تابع md5)(   در php استفاده کنید که با استفاده از الگوریتم md5 عدد یا رشته مورد نظر شما رو به کد هش تبدیل می کنه

 

برای تبدیل کد تصافی عددی بالا به کد هش بشکل زیر عمل کنید :

md5($rnd_number);

 

تابع بالا در php یک رشته رو از ما میگیره و به کد هش تبدیل میکنه

 

البته من برای سادگی برای تولید عدد تصادفی در بالا از تابع rnd استفاده کردم که شما حتی می تونید اصلا یک رشته ترکیبی از مشخصات کاربر رو به تابع هش کننده بدید تا یک کد32 کاراکتری به شما بده که بعدش این کد 32 کاراکتری رو برای کاربر ایمیل کنید ولی نکته ای که اینجا هست این هست که شما باید وقتیکه این کد رو تولید می کنید و برای کاربر ایمیل می کنید برای خودتون هم حالا یا موقتی یا دائم نگه دارید که تا بعدا که کاربر وقتی این کد رو از ایمیلش دریافت کرد و در صفحه پرداش تغییر رمز وارد کرد شما مقایسه کنید ببینید آیا همون کدی هست که شما ارسال کردید که اگر بود اجازه آپدیت رمز رو بهش بدید

 

یک سورس دیگر هم در خصوص پیاده سازی رمز یکبار در سیستم قرار دادم که میتونید از این سورس هم در صفحات لاگین خودتون برای ورود با رمز یکبار مصرف استفاده کنید که قابلیت ارسال به ایمیل نیز دارد :

دریافت
حجم: 2.25 کیلوبایت
 

سئوالتون رو در نظرات مطرح کنید یا با تلگرام من در ارتباط باشید

Tell: 09192421865