Php 如何在注册时输入MD5密码?

Php 如何在注册时输入MD5密码?,php,mysqli,Php,Mysqli,我下载了一个完整的php论坛,一直在删除错误并修复我不喜欢的东西 还有一件事,我不知道如何将我的密码存储为MD5密钥。如果有人能重写php代码来加密注册用户的密码,那就太好了 <?php session_start(); include '../_database/database.php'; if(isset($_REQUEST['signup_button'])){ $user_email=$_REQUEST['user_email'];

我下载了一个完整的php论坛,一直在删除错误并修复我不喜欢的东西

还有一件事,我不知道如何将我的密码存储为MD5密钥。如果有人能重写php代码来加密注册用户的密码,那就太好了

<?php
    session_start();
    include '../_database/database.php';
    if(isset($_REQUEST['signup_button'])){
        $user_email=$_REQUEST['user_email'];
        $user_firstname=$_REQUEST['user_firstname'];
        $user_lastname=$_REQUEST['user_lastname'];
        $user_username=$_REQUEST['user_username'];
        $user_password=$_REQUEST['user_password'];
        $sql="INSERT INTO user(user_firstname,user_lastname,user_email,user_username,user_password,user_joindate,user_avatar,user_backgroundpicture) VALUES('$user_firstname','$user_lastname','$user_email','$user_username','$user_password',CURRENT_TIMESTAMP,'default.jpg','default.jpg')";
        mysqli_query($database,$sql) or die(mysqli_error($database));
        $_SESSION['user_username'] = $user_username;
        header('Location: ../update-profile-after-registration.php?user_username='.$user_username);
    }
?>

注册页面调用此代码。

您可以使用$user\u password=MD5$\u REQUEST['user\u password'];然而,我不建议这样做。MD5对于密码哈希不再安全。查看密码\u哈希函数或crypt函数,以获得更安全的哈希算法。

您需要像INSERT语句那样使用:

$user_password= md5($_REQUEST['user_password']);
现在,插入后如何从数据库中选择md5密码

这非常简单,您必须遵循相同的步骤:

$user_password= md5($_REQUEST['user_password']); // your input with md5
根据手册,它将以32个字符的十六进制数返回哈希值

下面是md5哈希转换和选择的基本示例

// convert md5 hash
$insertString = 'apple';
$convert_md5 = md5($insertString); // 1f3870be274f6c49b3e31a0c6728957f

// select md5 hash
$selectString = 'apple';
if (md5($selectString) === $convert_md5) {
    echo "Would you like a green or red apple?";
}
试试这个

<?php
        session_start();
        include '../_database/database.php';
        if(isset($_REQUEST['signup_button'])){
            $user_email=$_REQUEST['user_email'];
            $user_firstname=$_REQUEST['user_firstname'];
            $user_lastname=$_REQUEST['user_lastname'];
            $user_username=$_REQUEST['user_username'];
            $user_password=$_REQUEST['user_password'];


             $user_password = md5( $user_password);




            $sql="INSERT INTO user(user_firstname,user_lastname,user_email,user_username,user_password,user_joindate,user_avatar,user_backgroundpicture) VALUES('$user_firstname','$user_lastname','$user_email','$user_username','$user_password',CURRENT_TIMESTAMP,'default.jpg','default.jpg')";
            mysqli_query($database,$sql) or die(mysqli_error($database));
            $_SESSION['user_username'] = $user_username;
            header('Location: ../update-profile-after-registration.php?user_username='.$user_username);
        }
    ?>

您使用的PHP版本是什么?如果您使用的是PHP>=5.5.0,我建议您使用密码\u散列;如果您不够高,但如您所说使用PHP5,您可以尝试使用ircmaxwell变通方法,您可以使用$user\u password=md5$\u REQUEST['user\u password'];md5$user\u密码,但请尝试找到另一种加密密码的方法。MD5在数据库中存储密码时不安全!顺便说一句,这是重复的:MD5不被认为是散列密码的安全方法,请使用本机PHP密码库。您还应该使用参数化/准备好的查询来避免sql注入黑客攻击。您在哪里下载了此代码?这是非常不安全的。至少在否决投票后添加评论。。。。下层选民。。。如果你没有指导,我该如何改进这一点。这不是我的反对票,但你可能得到了这些,因为有人不同意你没有指导OP使用MD5,并且没有提及/链接本世纪的密码哈希函数-@弗雷德二世:是的,可能是。。。试着解释一下它是如何工作的。。。好吧,我的回答不好,但对OP有用….:我同意。哦,好吧,你能做什么;-人有时可能是奇怪的动物。