Php 可以从mysql数据库获取用户名和密码匹配

Php 可以从mysql数据库获取用户名和密码匹配,php,mysql,Php,Mysql,正如标题所示,在尝试从数据库检索用户时,我可以获得密码和用户名的匹配。 当我第一次创建用户时,我使用此方法对密码进行散列: mysql_select_db($user); $username = $_REQUEST['username']; $password = $_REQUEST['password']; function hash_password($password1, $username1) { return hash_hmac('sha512', $password1 . $

正如标题所示,在尝试从数据库检索用户时,我可以获得密码和用户名的匹配。 当我第一次创建用户时,我使用此方法对密码进行散列:

mysql_select_db($user);
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
function hash_password($password1, $username1) {
    return hash_hmac('sha512', $password1 . $username1, $site_key);
}
$sql=mysql_query("INSERT INTO _SCD_BACKUP_USERS (username, password)
VALUES ('".$username."','".hash_password($password, $username)."')");
$r=mysql_query($sql);
if(!$r)echo "Error in query: ".mysql_error();
mysql_close();`
这似乎很好用!在数据库中得到我想要的东西。检索信息时,我无法使用以下代码获得匹配项:

$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
function hash_password($password1, $username1) {
    return hash_hmac('sha512', $password1 . $username1, $site_key);
}
$encrypted = hash_password($username, $password);
$sql = 'SELECT username FROM _SCD_BACKUP_USERS WHERE username = ? AND password = ?';
$result = $db -> query($sql, array($username, $encrypted));
if ($result -> numRows() < 1) {
    $arr = array('same' => true);
} else {
    $arr = array('same' => false);
}
print(json_encode($arr));
mysql_close();
$username=$\u请求['username'];
$password=$_请求['password'];
函数hash_password($password1,$username1){
返回hash_hmac('sha512',$password1.$username1,$site_key);
}
$encrypted=hash_密码($username,$password);
$sql='从_SCD_BACKUP_USERS中选择用户名,其中username=?密码=?';
$result=$db->query($sql,数组($username,$encrypted));
如果($result->numRows()<1){
$arr=array('same'=>true);
}否则{
$arr=array('same'=>false);
}
打印(json_编码($arr));
mysql_close();
有什么建议吗


//安德烈

参数是向后的

$encrypted = hash_password($username, $password);
应该是

$encrypted = hash_password($password, $username);