PDA

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 در نظر بگیرید و دوباره بررسی کنید با یه پسوورد جدید .




امید وارم مشکلتون حل بشه .

موفق باشید .