PDA

View Full Version : سوال: کار با hash



Louai_M
سه شنبه 05 اسفند 1393, 11:52 صبح
با سلام من یه فرم عضویت طراحی کردم که رمز عبور آن بعد از تبدیل به hash در دیتابیس ذخیره میشه


$password = $_POST['password'];
$hash = hash ( 'sha256', $password );

function createSalt()
{
$text = md5 ( uniqid ( rand (), true ) );
return substr ( $text, 0, 3 );
}

$salt = createSalt ();
$password = hash ( 'sha256', $salt . $hash );


تا اینجا مشکلی نداریم

خوب حالا تو صفحه login چطور این رمز را بخوانم کد ها رو نوشتیم به شکل زیر ولی جواب نداد



$now_time = time();
$_SESSION['time_started'] = $now_time;
$_SESSION['time_remaining'] = 1800;
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if(empty($username) || empty($password))
{
echo '<span style="background:#fff;padding:3px;color:red;"> نوشتن نام کاربری و رمز عبور الزامی است. </span>';
}
else
{

$hash = hash ( 'sha256', $password );

function createSalt()
{
$text = md5 ( uniqid ( rand (), true ) );
return substr ( $text, 0, 3 );
}

$salt = createSalt ();
$password = hash ( 'sha256', $salt . $hash );
$result=$data->select_user($username,$password);
$userExist = mysql_num_rows($result);
$value = mysql_fetch_array($result);
$username = mysql_real_escape_string($username);
$role = 'user';
Session::init();
Session::set('role', 'user');
Session::set('loggedIn', true);
Session::set('userid', $value['login_username']);
Session::set('remember', $_POST['remember']);
if($userExist > 0)
{
$_SESSION['role'] = $role;
header("location: user");
exit();
ob_flush();
}
else
{
echo '<span style="background:#fff;padding:3px;color:red;"> نام کاربری یا رمز عبور اشتباه است. </span>';
}

Louai_M
سه شنبه 05 اسفند 1393, 14:53 عصر
دوستان کسی نیست جواب بده

نیاز فوری دارم

prans.info
سه شنبه 05 اسفند 1393, 15:54 عصر
شما عدد رندوم نزن ایمیل و نام کاربری و پسورد رو + یک استرینگ از پیش تعیین شده رو بزار تویه md5 ...

Tarragon
سه شنبه 05 اسفند 1393, 16:28 عصر
مقدار salt رو یک مقدار ثابت برای هر کاربر در نظر بگیرید و در دیتابیس برای هر کاربر ذخیره کنید.

ashokri.nll
سه شنبه 05 اسفند 1393, 16:35 عصر
خیلی پیچیده کردی فقط یه بار موقع عضویت کنترل کن کد یا چیزهای غیرمجاز نره تو دیتابیس و چند بار md5و sha1 و ... رو به صورت تو در تو بکار ببر