【发布时间】:2019-05-01 14:05:27
【问题描述】:
我的登录活动无法读取加密密码我在没有加密密码的情况下尝试过,它可以工作,我不确定是 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);
}
?>
【问题讨论】:
-
这与 Android 究竟有什么关系?
-
我尝试调用密码登录,但提示密码错误
-
上面的代码适用于未加密的密码。这是非常糟糕的™。顺便说一句,加密的密码也是 Bad™。使用哈希和盐或其他提供者。看看这个:youtube.com/watch?v=8ZtInClXe1Q
-
使电子邮件地址
UNIQUE与之匹配以检索密码。我假设您已经在使用password_hash,因为您声明了“im Using PASSWORD_BCRYPT”,因此您应该使用password_verify()来根据从数据库中检索到的哈希验证 POST 密码...不是试图将其直接植入 SQL 查询中。 -
另外,你说你正在使用
PASSWORD_BCRYPT,但你的代码没有显示。 PHP 的password_hash函数的文档提供了一些关于如何使用它的信息。简而言之,你散列密码,存储散列。然后,在尝试匹配时,您使用password_verify来检查发送的密码是否正确。
标签: php password-hash