как вызвать зашифрованный пароль PHP на Android Mysql - PullRequest
0 голосов
/ 01 мая 2019

мой логин не может прочитать зашифрованный пароль. Я пробовал без зашифрованного пароля, и он работает, и я не уверен, что ошибка от php или самого действия о том, как расшифровать пароль

im Использование PASSWORD_BCRYPT


   <?php
     include "conn.php";



     $Email = $_POST['Email'];
    $Password = $_POST['Password'];


    $sql_login = "SELECT * FROM users WHERE Email = :EMAIL and Password =:PASSWORD";
    $stmt = $PDO->prepare($sql_login);
    $stmt->bindParam(':EMAIL', $Email);
    $stmt->bindParam(':PASSWORD', $Password);
    $stmt->execute();

    if ($stmt->rowCount() > 0) {

    $returnApp = array('LOGIN' => 'SUCCESS');

    echo json_encode($returnApp);

    }else{

    $returnApp = array( 'LOGIN' => 'FAILED');

    echo json_encode($returnApp);

    }



    ?>

1 Ответ

1 голос
/ 01 мая 2019

Чтобы правильно использовать хеширование пароля в PHP, используйте комбинацию password_hash и password_verify.

Когда пользователь регистрируется, вы получаетеего пароль, хешируйте его и сохраняйте в базе данных:

$hash = password_hash($_POST['newpassword'], PASSWORD_DEFAULT);
// store $hash in database column "password"

Когда этот пользователь хочет войти в систему, вы проверяете по хешу:

// fetch hash from database, store it in $stored_hash
$logged_in = password_verify($_POST['password'], $stored_hash);
if ($logged_in === TRUE) {
    echo "Welcome!";
} else {
    echo "Username or password incorrect.";
}

Заключительные замечания:

  1. Используйте PASSWORD_DEFAULT и убедитесь, что ваша база данных может сохранить результат (также в будущем).Алгоритмы хэширования иногда подвергаются взлому.
  2. Вы можете использовать другого провайдера, такого как Google или Facebook, для обработки вашей аутентификации.Это также имеет свои недостатки.
...