簡體   English   中英

無法使用php中的真實密碼登錄

[英]Can't login with real password in php

我有一個注冊表格和登錄表格。 我已經在注冊表格中使用了md5加密,並且工作正常。 但是,當我嘗試使用(123)之類的真實密碼登錄時,它並沒有登錄。另一方面,當我在md字段中復制粘貼md5加密時,它也正在登錄。請幫助我! 謝謝!

這是我的編碼:

<?php
        if (isset($_POST['submit'])) {

            $user_name = $_POST['username'];
            $user_email = $_POST['email'];
            $user_pass = $_POST['password'];

            $query = "SELECT * FROM users where Email = '" . $_POST["email"] . "'";
            $result = $obj->run_query($query);

            if ($count = mysqli_num_rows($result) == 0) {

                $query = "INSERT INTO users (Name,Email,Pass) VALUES ('$user_name','$user_email', md5('$user_pass'))";
                $result = $obj->run_query($query);

                echo "<script>alert('You have successfully Registered!')</script>";
                echo "<script>window.open('welcome.php','_self')</script>";

            } else {

                echo "<script>alert('This user email $user_email is already exist!')</script>";
            }
        }

    // login script
    if (isset($_POST['login'])) {

        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = $_POST['pass'];

        $query = "SELECT * FROM users WHERE Email = '$email' AND Pass = '$password'";
        $result = $obj->run_query($query);

        if ($count = mysqli_num_rows($result) > 0) {

            $_SESSION['email'] = $email;
            $_SESSION['name'] = $name;

            echo "<script>window.open('welcome.php','_self')</script>";



        }
        else 
        {
            echo "<script>alert('Your email or password is incorrect!')</script>";
        }
    }

?>   

如前所述:您正在比較POST數組中的純文本$password = $_POST['pass']; 到表中的MD5。

應該讀為$password = md5($_POST['pass']);

我還說過, “永遠”都不要接受這個。 如果它是實時站點,建議您暫停使用,直到使用安全的“本世紀”哈希函數為止。

MD5已有30多年的歷史,現在不再被認為可以安全地用於哈希/存儲密碼。

請參閱以下內容:

密碼

使用以下之一:

其他連結:

有關列長的重要旁注:

如果確實要決定使用password_hash()或crypt,則必須注意,如果當前密碼列的長度小於60,則需要將其更改為該長度(或更大)。 手冊建議長度為255。

您將需要更改列的長度並以新的哈希值重新開始,以使其生效。 否則,MySQL將靜默失敗。


您當前的代碼也可以進行SQL注入 mysqli與預處理語句一起使用,或將PDO與預處理語句一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM