PDA

View Full Version : کمک در مورد خواندن md5



Master_Power
جمعه 26 تیر 1394, 11:54 صبح
سلام

فرض کنید موقع ثبت نام برای ورود password ما از کدگذاری md5 استفاده کردیم
خب حالا چطوریی برای فرم ورود تعریف کنیم که اون چیزی که کاربر میزنه برابر با md5 داخل دیتابیس باشه ؟

reza_alie
جمعه 26 تیر 1394, 11:58 صبح
سلام


$pass=md5($_POST['password'])
$sql=mysql_query("select * form `user` where `passwore`=$pass");

Master_Power
جمعه 26 تیر 1394, 12:10 عصر
این کد مشکل داره
لطفا راهنمایی کنید

if(isset($_POST['username']) and (isset($_POST['password'])))
{
$username=$_POST['username'];
$username=stripslashes($username);
$username= mysql_real_escape_string($username);
$password=md5($_POST['password']);
$password=stripslashes($password);
$password=mysql_real_escape_string($password);

$sql="SELECT kj_username,kj_password FROM kj_info WHERE kj_username='".$username."' and kj_password='".$password."'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);

if($result and mysql_num_rows($result)>0)
{


display_message ('yes');
$_SESSION['user']=$username;
}
else
{
display_message ('Accsess Denies');
}
}
else
{
header('location:index.php');
exit();
}

reza_alie
جمعه 26 تیر 1394, 12:21 عصر
چه ارورری رو میده؟

Master_Power
جمعه 26 تیر 1394, 12:38 عصر
موقعی که ورود میزنم توی فرم میگه رمز عبور اشتباهه

ظاهرا نمیتونه md5 را از بانک بخونه

ولی وقتی md5 را برمیدارم کار میکنه

reza_alie
جمعه 26 تیر 1394, 12:44 عصر
شما رمز عبور رو به صورت md5در بانک ذخیره کردین که با اون دارید مقایسه می کنید؟

Master_Power
جمعه 26 تیر 1394, 12:48 عصر
بله

رمز موقع ثبت نام به md5 تبدیل میشه

phpdev
جمعه 26 تیر 1394, 13:47 عصر
ورژن phpت چیه ؟

ورژن mysql چیه ؟

اون موقع که کاربر داشته ثبت نام میکرده هم همین نسخها بوده یا نه ؟

Master_Power
جمعه 26 تیر 1394, 14:06 عصر
نسخه php 5.5
mysql هم 4.3.11

من دارم سایتو مینویسم
تقریبا هم آخراشم

الان وقتی که md5 گذاشتم توی بانک با md5 ذخیره میشه ولی موقع وارد شدن کاربر ظاهرا نمیشناسه md5 رو
:گریه:

us1234
جمعه 26 تیر 1394, 15:29 عصر
ترتیب کد ها باید به این شکل باشه :



$password = $_POST['password'];
$password=stripslashes($password);
$password=mysql_real_escape_string($password);
$password=md5($password);


کوئری را هم سعی کن به این شکل بازنویسی کنی :



$sql="SELECT kj_username,kj_password FROM kj_info WHERE kj_username='".$username."' LIMIT 1";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
if($row['kj_password'] === $password )
{
//TODO loging:
}

Master_Power
جمعه 26 تیر 1394, 16:00 عصر
بازم نمیشناسهههههههههههههه

HELPPPPP

phpdev
دوشنبه 29 تیر 1394, 19:49 عصر
خوب نباید بشناسه بخاطر اینکه has توی ورژنها با هم متفاوته اگر داری php 5.5 کار میکنی لاقل باید mysql هم 5 به بالا باشه بازم اگه دیدی نشد ورژن mysql رو نزدیکتر به 5.5 بکن

arta.nasiri
دوشنبه 29 تیر 1394, 20:03 عصر
سلام
تا اونجایی که دانش کم من قد میده پسورد رو escape نمیکنن یا حداقل قبل از هش این کار رو نمیکنن چون هر کد مخربی هم کاربر وارد کرده باشه موقع هش خنثی میشه ولی میتونید بعد از هش رشته مورد نظر رو escape کنید که اونم بی فایدست.

arta.nasiri
دوشنبه 29 تیر 1394, 20:04 عصر
خوب نباید بشناسه بخاطر اینکه has توی ورژنها با هم متفاوته اگر داری php 5.5 کار میکنی لاقل باید mysql هم 5 به بالا باشه بازم اگه دیدی نشد ورژن mysql رو نزدیکتر به 5.5 بکن

الگوریتم های هش چیزی نیستند که تو هر ورژن تغییر پیدا بکنن. اصلا به ورژن php و mysql هم مربوط نمیشه.

arta.nasiri
دوشنبه 29 تیر 1394, 20:07 عصر
مورد دیگه ای هم که الان تو کدی که نوشتید دیدم اینه که وقتی کوئری میزنید پسورد رو وارد کوئری نکنید بلکه توسط username رکورد رو پیدا بکنید بعدش مقدار برگشتی از کوئری رو با مقداری که کاربر وارد کرده مقایسه بکنید.