PHP中的MySQL密码比较

PHP中的MySQL密码比较,php,mysql,passwords,Php,Mysql,Passwords,下午好。基本上,我有一个带有登录表单的页面,要求用户输入用户名和密码。然后我将这些用户名和密码的哈希版本与MySQL中的密码数据库进行匹配 现在,鉴于我不知道黑客/指数过滤器能做什么,我只想永远不要从数据库中检索正确密码的哈希版本,并在服务器上进行比较。我浏览了谷歌和MySQL教程网站,但似乎找不到一个明确的答案(我可能在这里淹死了)。基本上这就是我想做的: 用户输入用户名+密码 我通过一个存储过程将这些信息转发给MySQL 如果找到匹配项,存储过程将返回TRUE/FALSE(1或0无关紧要)

下午好。基本上,我有一个带有登录表单的页面,要求用户输入用户名和密码。然后我将这些用户名和密码的哈希版本与MySQL中的密码数据库进行匹配

现在,鉴于我不知道黑客/指数过滤器能做什么,我只想永远不要从数据库中检索正确密码的哈希版本,并在服务器上进行比较。我浏览了谷歌和MySQL教程网站,但似乎找不到一个明确的答案(我可能在这里淹死了)。基本上这就是我想做的:

  • 用户输入用户名+密码
  • 我通过一个存储过程将这些信息转发给MySQL
  • 如果找到匹配项,存储过程将返回TRUE/FALSE(1或0无关紧要)

非常感谢您抽出时间。

我不太清楚您的目的是什么,但如果我正确理解了问题,您想做如下操作:

SELECT password FROM users WHERE username = '$username';
然后将密码与PHP进行比较,您担心这可能会成为一个安全问题

我不认为从安全角度看这有什么区别。检查密码是否正确的常用方法是:

SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedPassword';

如果count==1,则用户提供了正确的密码。您可以看到,如果密码不匹配,MySQL在任何时候都不会给出实际密码。即使有,黑客也几乎不可能获得这些信息。如果可以的话,他们已经劫持了你的服务器,这是你最小的问题。

我不太确定你在找什么,但是如果我正确理解了这个问题,你想这样做:

SELECT password FROM users WHERE username = '$username';
然后将密码与PHP进行比较,您担心这可能会成为一个安全问题

我不认为从安全角度看这有什么区别。检查密码是否正确的常用方法是:

SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedPassword';

如果count==1,则用户提供了正确的密码。您可以看到,如果密码不匹配,MySQL在任何时候都不会给出实际密码。即使有,黑客也几乎不可能获得这些信息。如果可以的话,他们已经劫持了你的服务器,这是你的最小问题。

在向数据库发送凭据时只需使用
mysql\u real\u escape\u string
。这将阻止SQL注入

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

将凭证发送到数据库时,只需使用
mysql\u real\u escape\u string
。这将阻止SQL注入

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

我现在就是这么做的,但我担心安全问题。如果这是非常安全的,我很乐意接受它作为正确的答案。谢谢:)是的,在MySQL和PHP之间传递数据是安全的。这就是我目前所做的,但我担心的是安全性。如果这是非常安全的,我很乐意接受它作为正确的答案。谢谢:)是的,在MySQL和PHP之间传递数据是安全的。