作者:yan | 来源:互联网 | 2022-12-02 17:34
我有一个用户的现有数据库,每个用户的密码都存储为MD5哈希.
我试图用PHP创建一个登录表单(我也非常新)只是我似乎无法让它工作,我知道我的用户名和密码是正确的但我仍然收到错误的错误,我有转换我的在检查表中的用户名之前输入到MD5的密码?
我现在有......
if (isset($_POST['register'])){
$name = $_POST['name'];
$username = $_POST['username'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
if ($password == $confirm_password) {
$query = mysqli_query($db, "INSERT INTO users (name, username, password) VALUES ('$name', '$username', MD5('".$password."'))");
//$query="INSERT INTO ptb_users (id,user_id,first_name,last_name,email )VALUES('NULL','NULL','".$firstname."','".$lastname."','".$email."',MD5('".$password."'))";
echo 'OK.';
} else {
echo 'Error.';
}
}
小智..
5
可以使用md5作为加密算法,但我建议使用更好的替代方案.看看这里,这是官方的php文档.只使用该页面上的基本示例比md5更安全
$password = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
回到你的问题,是的,如果密码作为md5哈希保存到数据库中,你必须使用md5函数转换输入中的密码,然后检查你的哈希是否有效.
不过,我鼓励你使用password_hash()和password_verify().
1> 小智..:
可以使用md5作为加密算法,但我建议使用更好的替代方案.看看这里,这是官方的php文档.只使用该页面上的基本示例比md5更安全
$password = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
回到你的问题,是的,如果密码作为md5哈希保存到数据库中,你必须使用md5函数转换输入中的密码,然后检查你的哈希是否有效.
不过,我鼓励你使用password_hash()和password_verify().