如何在注册时获得MD5加密密码


How do i MD5 crypt password at registration?

我下载了一个完整的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_password=MD5($_REQUEST['user_password']);但是,我不建议这样做。 MD5密码哈希不再安全。查看 password_hash 函数或 crypt 函数以获得更安全的哈希算法。

试试这个

<?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);
        }
    ?>

你需要像这样用于你的INSERT语句:

$user_password= md5($_REQUEST['user_password']);

现在,插入后如何从数据库中选择md5()密码?

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

$user_password= md5($_REQUEST['user_password']); // your input with md5

MD5() PHP 手册

根据手册,它将以 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?";
}