Функция, которую я использовал для шифрования пароля:
$password = crypt($password,"$2sd\$qwsazxcdrgfggfdfsdsd");
функция проверки пароля для соответствия паролю:
while($row = $result->fetch_assoc()){
if($row["email"] === $username && password_verify($password,$row["password"])){
$message .= "Logging Success!";
$userFound = true;
$_SESSION["email"]=$row["email"];
$_SESSION["fullname"] = $row["full_name"];
header('Location: view_contact.php');
exit;
}else{
$userFound = false;
}
}
Проблема здесь в том, когда я ввожу пароль. Я могу войти в систему, введя только 8 правильных паролей, остальные цифры игнорируются.
Попробуй использовать
password_hash($password, PASSWORD_DEFAULT)
вместо crypt
Если вы используете просто crypt (), тогда вы выбираете устаревший 56-битный алгоритм на основе DES, который действительно просматривает только первые 8 символов.
Используйте «$ 5 $ ….» или «$ 6 $ …» в качестве соли для выбора 256 или 512-битных алгоритмов на основе SHA2.
Смотрите «man 3 crypt» под Linux или https://en.wikipedia.org/wiki/Crypt_(C) или же http://php.net/manual/de/function.crypt.php