Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL密码()不';不能使用SELECT语句_Php_Mysql_Sql_Passwords - Fatal编程技术网

Php MySQL密码()不';不能使用SELECT语句

Php MySQL密码()不';不能使用SELECT语句,php,mysql,sql,passwords,Php,Mysql,Sql,Passwords,mysql中的密码功能在插入和更新时可以很好地使用,例如: $query_insert = "INSERT INTO `account`(`Gender`, `Birth_date`, `Name`, `UserName`, `Password`, `Email`, `Type`) VALUES ('" . $gender . "' , '" . $birthdate . "' , '" . $name . "' , '" . $username . "' , password('" . $pa

mysql中的密码功能在插入和更新时可以很好地使用,例如:

$query_insert = "INSERT INTO `account`(`Gender`, `Birth_date`, `Name`, `UserName`, `Password`, `Email`, `Type`) VALUES ('" . $gender . "' , '" . $birthdate . "' , '" . $name . "' , '" . $username . "' , password('" . $password . "') , '" . $email . "' , 'Member' ) ";    
它正确地插入哈希密码

但当我试图在登录代码中检索它时,它不起作用

mysqli_query($con, "SELECT * FROM account where UserName = '" . $username . "' AND password = password('" . $password . "') ");
我试着用

mysqli_set_charset($con, 'utf8');
但结果是一样的 我甚至尝试在PHPMyAdmin中使用它作为select查询,并且出现了相同的错误

更新 我使用了MD5() 而且它对我起作用了

如以下文件所述:

注 该功能用于MySQL服务器中的认证系统;您不应该在自己的应用程序中使用它。为此,考虑或替代。另请参阅,以获取有关在应用程序中安全处理密码和身份验证的更多信息


另外,如果您正在运行自己的身份验证系统(我强烈反对),您真的应该同时阅读和。

“它不起作用”并不是mysql发出的错误消息。@user3504563:因此只能得出结论,您没有遵循我刚才给出的任何建议(我强烈反对运行自己的身份验证系统,即“Secure hash and salt for PHP passwords”链接明确表示“永远不要使用SHA1或MD5散列密码!现代破解程序可以分别超过每秒600亿和1800亿次散列”。“基于表单的网站身份验证的权威指南”包含了大量您无疑忽略的其他重要信息。使用MD5(),您也不必费心对密码进行哈希运算-只需将其明文存储。@user3504563-请使用PHP函数而不是fast MD5。在SQL语句中无法安全验证密码,您首先必须检索密码,然后才能使用该函数。