如何将加密密码php致电Android MySQL



我的登录活动无法读取我在没有加密密码的情况下尝试的加密密码,并且它可以正常工作,并且我不确定php或活动本身是如何解密密码的错误

我正在使用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);
    }

    ?>

正确使用PHP中的密码,使用password_hashpassword_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等另一个提供商来处理您的身份验证。不过,这也有其缺点。

最新更新