php - 我尝试使用哈希密码登录,但密码不相等
问题描述
使用哈希密码登录时错误不等于密码
我尝试使用此代码进行哈希并注册...然后当我想登录 password_hash() 创建另一个哈希密码
function addUser($gmail, $password){
$connection = mysqli_connect(DataBaseManager::HOST,
DataBaseManager::USER, DataBaseManager::PASSWORD,
DataBaseManager::DATABASENAME);
mysqli_set_charset($connection, "utf8");
$sqlQuery = "SELECT * FROM users WHERE gmail='$gmail'";
$result = mysqli_query($connection, $sqlQuery);
$hashed = password_hash($password, PASSWORD_DEFAULT);
if(mysqli_num_rows($result) > 0)
{
return false;
}
else{
$sqlCommand = "INSERT INTO users(gmail , password ) VALUES('$gmail', '$hashed')";
if (mysqli_query($connection, $sqlCommand)) {
return true;
} else {
return false;
}
}
}
function getUser($gmail , $password){
$connection = mysqli_connect(DataBaseManager::HOST,DataBaseManager::USER,DataBaseManager::PASSWORD, DataBaseManager::DATABASENAME);
mysqli_set_charset($connection, "utf8");
$hashed = password_hash($password, PASSWORD_DEFAULT);
$sqlQuery = "SELECT * FROM users WHERE gmail='$gmail' AND password = '$hashed'";
var_dump($sqlQuery);
$result = $connection->query($sqlQuery);
if ($result->num_rows > 0) {
return true;
}else{
return false;
}
}
解决方案
password_verify用于验证。
推荐阅读
- javascript - 滚动 svg 上的动画文本,不能同时激活两个形状?
- ruby-on-rails - .find_or_initialize_by 的 Rails 验证错误
- reactjs - 如何使用 Next.js 预渲染 Material-UI v5?
- javascript - 悬停子节点时的引导工具提示错误
- vue.js - '不提供名为'createRouter'的导出'' vue 3、vite 和 vue-router
- javascript - 使用 Apps 脚本从 Google 电子表格向 LINE 通知发送消息
- c++ - 在 C++ 中访问对象指针的属性
- python - RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu on transormer
- java - 确定 Android 应用程序中语句的执行顺序?
- ruby-on-rails - 在 Ubuntu 18.04 上为特定版本安装 Ruby On Rails 的问题