2015-06-09 1 views
1

Я имею вопросы, сравнивающие пароли, используя crypt, один пароля от post других вытащил из моей database ...сравнения крипт паролей не похож на работу

Вот мой код Войти с примерной солью:

$username = $_POST['username']; 
$password = $_POST['password']; 
$cryptSalt = '$2y$06$PizWslhw9Z9oM9QSPt9zY.g9faOSoUdNLO7RemQrWTMY.NOpr3oTG'; 
$password = crypt($password, $cryptSalt); 

if($login = $con->prepare("SELECT userID,userName,userPassword FROM users WHERE userName=?")) { 
    $login->bind_param("s", $username); 
    if($login->execute()) { 
     $login->bind_result($userID,$username,$currentPassword); 
     while($login->fetch()) { 
      if(crypt($password, $currentPassword) == $currentPassword) { 
       echo "<p class='alert'>Password Correct</p>"; 
      } else { 
       echo "<p class='alert'>Password Incorrect</p>"; 
      }; 
     }; 
    } else { 
     echo "<p class='alert'>User Not Found</p>"; 
    }; 
}; 
$login->close(); 

При нахождении в правильного пароля он по-прежнему выводит, что пароль неверен, есть ли причина для этого?

$username  = $_POST['username']; 
$firstName  = $_POST['firstName']; 
$lastName  = $_POST['lastName']; 
$emailAddress = $_POST['emailAddress']; 
$cryptSalt  = '$2y$06$PizWslhw9Z9oM9QSPt9zY.g9faOSoUdNLO7RemQrWTMY.NOpr3oTG'; 
$password  = $_POST['password']; 
$password  = crypt($password, $cryptSalt); 

if($register = $con->prepare("INSERT INTO users(userName,userFirstName,userLastName,userEmailAddress,userPassword) VALUES(?,?,?,?,?)")) { 
    $register->bind_param("sssss", $username,$firstName,$lastName,$emailAddress,$password); 
    if($register->execute()) { 
     echo "<p class='alert'>Account Created</p>"; 
    } else { 
     echo "<p class='alert'>Execution Error: Account Creation</p>"; 
    }; 
}; 
$register->close(); 

Примечание: это внутренний веб-сайт, SQL-инъекция не является проблемой.

ответ

0

Похоже, вы слишком много хешируете (в строке 4 и строке 10), но то, что вы хотите сделать, это сравнить хэш введенного пароля с хешем в базе данных.

$username = $_POST['username']; 
$password = $_POST['password']; 
$cryptSalt = '$2y$06$PizWslhw9Z9oM9QSPt9zY.g9faOSoUdNLO7RemQrWTMY.NOpr3oTG'; 
$password = crypt($password, $cryptSalt); 

if($login = $con->prepare("SELECT userID,userName,userPassword FROM users WHERE userName=?")) { 
    $login->bind_param("s", $username); 
    if($login->execute()) { 
     $login->bind_result($userID,$username,$currentPassword); 
     while($login->fetch()) { 
      if($password == $currentPassword) { 
       echo "<p class='alert'>Password Correct</p>"; 
      } else { 
       echo "<p class='alert'>Password Incorrect</p>"; 
      }; 
     }; 
    } else { 
     echo "<p class='alert'>User Not Found</p>"; 
    }; 
}; 
$login->close(); 

ИЛИ

$username = $_POST['username']; 
$password = $_POST['password']; 
$cryptSalt = '$2y$06$PizWslhw9Z9oM9QSPt9zY.g9faOSoUdNLO7RemQrWTMY.NOpr3oTG'; 

if($login = $con->prepare("SELECT userID,userName,userPassword FROM users WHERE userName=?")) { 
    $login->bind_param("s", $username); 
    if($login->execute()) { 
     $login->bind_result($userID,$username,$currentPassword); 
     while($login->fetch()) { 
      if(crypt($password, $cryptSalt) == $currentPassword) { 
       echo "<p class='alert'>Password Correct</p>"; 
      } else { 
       echo "<p class='alert'>Password Incorrect</p>"; 
      }; 
     }; 
    } else { 
     echo "<p class='alert'>User Not Found</p>"; 
    }; 
}; 
$login->close(); 
+0

Ах хорошая точка, спасибо – FileParts

 Смежные вопросы

  • Нет связанных вопросов^_^