View Full Version : مشکل تابع md5
mmm201
جمعه 21 فروردین 1394, 02:48 صبح
سلام
من می خوام کدی که کار بر وارد میکنه با کدی که در بانک ذخیر شده مقایسه بشه برای تغییر پسوورد اما تابع md5 کار نمیکنه
<?php
$senddata=@$_POST['senddata'];
$old_password=@$_POST['oldpassword'];
$new_password=@$_POST['newoassword'];
$peat_password=@$_POST['newoassword2'];
if ($senddata)
{ $pass_quey=mysql_query("SELECT *FROM users WHERE username='$username'");
while($row=mysql_fetch_assoc($pass_quey)){
$db_password=$row['password'];
$old_password_md5=md5($old_password);
if($old_password_md5==$db_password){
echo "pass ok";
}
else{
echo "pass not" ; }}
}?>
S . Attack3r
جمعه 21 فروردین 1394, 03:15 صبح
سلام !
این رو امتحان کنید :
<?php
$senddata=@$_POST['senddata'];
$old_password=@$_POST['oldpassword'];
$new_password=@$_POST['newoassword'];
$peat_password=@$_POST['newoassword2'];
if ($senddata)
{ $pass_quey=mysql_query("SELECT * FROM users WHERE username='$username'");
while($row=mysql_fetch_assoc($pass_quey)){
$db_password=$row['password'];
$db_password=md5($db_password);
$old_password_md5=md5($old_password);
if($old_password_md5==$db_password){
echo "pass ok";
}
else{
echo "pass not" ; }}
}?>
S . Attack3r
جمعه 21 فروردین 1394, 03:16 صبح
<?php
$senddata=@$_POST['senddata'];
$old_password=@$_POST['oldpassword'];
$new_password=@$_POST['newoassword'];
$peat_password=@$_POST['newoassword2'];
if ($senddata)
{ $pass_quey=mysql_query("SELECT * FROM users WHERE username='$username'");
while($row=mysql_fetch_assoc($pass_quey)){
$db_password=$row['password'];
$db_password=md5($db_password);
$old_password_md5=md5($old_password);
if($old_password_md5==$db_password){
echo "pass ok";
}
else{
echo "pass not" ; }}
}?>
mmm201
جمعه 21 فروردین 1394, 03:26 صبح
نه فرقی نکرد
S . Attack3r
جمعه 21 فروردین 1394, 03:28 صبح
نه فرقی نکرد
مهندس شما توی کوئری گفتی $username
میشه بگید این $username کجا هست ؟ !
در ضمن $pass_quey رو var_dump کنید ! صد در صد مشکل حل میشه !
mmm201
جمعه 21 فروردین 1394, 03:39 صبح
select از دیتا بیس مشکلی نداره تستش کردم
S . Attack3r
جمعه 21 فروردین 1394, 03:45 صبح
select از دیتا بیس مشکلی نداره تستش کردم
دوست عزیز آیدی یاهو و اسکایپ ینده Hackinux هست !
ادد کنید تا با TeamViewer اوکی کنیم مشکل رو !
اما بعید میدونم کوئری درست باشه !
mmm201
جمعه 21 فروردین 1394, 03:46 صبح
مشکل اینه که پسوورد در دیتابیس به این شکل 72452870d21f1ce3bc1eea105c56bb99 ذخیره شده و اینجا وقتی کد وارد میشه با اون مطابقت نداره
من همین پسوورد رو با این
کوئری نمایش دادم
S . Attack3r
جمعه 21 فروردین 1394, 03:48 صبح
مشکل اینه که پسوورد در دیتابیس به این شکل 72452870d21f1ce3bc1eea105c56bb99 ذخیره شده و اینجا وقتی کد وارد میشه با اون مطابقت نداره
خوب این مشکل گفتم که با این خط کد حل میشه !
$db_password=md5($db_password);
اگر مشکل حل نشد توی یاهو - اسکایپ یا پیام خصوصی TeamViewer بدید تا مشکل را حل کنیم.../
khanlo.javid
جمعه 21 فروردین 1394, 22:26 عصر
دوست عزیز پسوورد رو با چه تابعی تو دیتابیس کد و ذخیره کردید ؟؟؟ md5 ؟؟ دوما اصلا $username وجود نداره تو تعرف متغییر های شما ، اصلا چیزی داخل این متغییر ریخته نشده یعنی مقدارش تهی هستش و قطعا دیتایی واکشی نمیشه ، به نظر من مشکل از واکشیتون هست ، لطفا کوئریتون رو به دقت بررسی کنید ، یا در غیر اینصورت اطلاعات بیشتری بزارید تا بتونیم کمکتون کنیم.
khanlo.javid
جمعه 21 فروردین 1394, 22:29 عصر
یک مشکل دیگه هم میتونه رخ داده باشه و اونم اینه که شما مقدار کاراکتر های فیلد پسوورد رو تو دیتابیس کم دادید و پسوورد کد شده به صورت ناقص تو دیتابیس ذخیره شده یعنی ممکنه چند کاراکتری ذخیره نشده باشه و به همین دلیل پسوورد ها با هم مطابقت نداشته باشن ، پس لطفا مقدار کاراکتر های مجاز فیلد پسوورد رو هم تو دیتابیس یه عددی مثل 200 در نظر بگیرید و دوباره بررسی کنید با یه پسوورد جدید .
امید وارم مشکلتون حل بشه .
موفق باشید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.