Php md5密码检索

Php md5密码检索,php,mysql,encryption,md5,Php,Mysql,Encryption,Md5,我做了登记表和登录表 我首先使用trim(),然后使用md5()将密码存储在数据库中 我用同样的方法在登录表单中检查数据库中的密码,但由于未知原因,我无法匹配登录表单中的md5密码 我只想从数据库中检索密码 问题是,当我将它存储在数据库中并在php myadmin中检查它时,md5密码类似于123456789,当我以登录形式回显它时,它会给我这个1234567890。最后一个零是造成问题的原因,否则整个md5密码都匹配。我的数据库排序规则是拉丁语\u 1\u瑞典语\u ci 有什么排序问题吗 我

我做了登记表和登录表

我首先使用
trim()
,然后使用
md5()
将密码存储在数据库中

我用同样的方法在登录表单中检查数据库中的密码,但由于未知原因,我无法匹配登录表单中的md5密码

我只想从数据库中检索密码

问题是,当我将它存储在数据库中并在php myadmin中检查它时,md5密码类似于
123456789
,当我以登录形式回显它时,它会给我这个
1234567890
。最后一个零是造成问题的原因,否则整个md5密码都匹配。我的数据库排序规则是
拉丁语\u 1\u瑞典语\u ci

有什么排序问题吗

我使用varchar值255,然后使用文本等,但没有解决方案

格式或结构有问题吗

请帮助我正确检索md5密码,消除不需要的零

function login()

    {
        if(isset($_POST['login']))
        {
            if(!$_POST['username'] || !$_POST['password'])
                {die (mysql_error());}

            else
            {
                $username = trim($_POST['username']);
                $username = addslashes($_POST['username']);

                $password = trim($_POST['password']);
                $password = md5($_POST['password']);
                echo $password;


                $check_username = mysql_query("SELECT * FROM users WHERE username = '".$username."'")or die(mysql_error());
                $check_username2 = mysql_num_rows($check_username);

                if ($check_username2 == 0)
                    {die ("Username and password doesnt exist");}
                else 
                    {
                        $check_pass = mysql_query("SELECT * FROM users WHERE username = '".$password."'")or die(mysql_error());
                        $check_pass2 = mysql_num_rows($check_pass); 
                        echo $check_pass2;
                    }


            }
        }
    }

函数寄存器()
{
如果(isset($_POST['submit']))
{
如果(!$发布['first_name']| |!$发布['last_name']| | |!$发布['username']| | |!$发布['password'])
{header(“Location:user_registration.php”);}
其他的
{
$firstname=trim($_POST['first_name']);
$firstname=addslashes($_POST['first_name']);
$lastname=trim($_POST['last_name']);
$lastname=addslashes($_POST['last_name']);
$username=trim($_POST['username']);
$username=addslashes($_POST['username']);
$password=trim($_POST['password']);
$password=md5($_POST['password']);
connect();
if($mysql\u check\u user=mysql\u query(“从`users`WHERE`username`中选择*LIKE'$username'))
{
$check\u row=mysql\u num\u rows($mysql\u check\u user);
如果($check_row>0)
死亡(“用户名存在”);
其他的
{
$store=mysql\u查询
(“插入“项目上传”。“用户”
(`id`、`fname`、`lname`、`username`、`password`)
值(NULL,“$firstname”、“$lastname”、“$username”、“$password”);
}
如果($store)
{echo“您已成功注册。请转到”;}
else{echo mysql_error();}
}
}
}
}

实际上,没有解密MD5字符的选项。如果要进行比较,必须将输入转换为MD5字符串,然后才能轻松地与数据库中存储的值进行比较。

实际上,没有解密MD5字符的选项。如果要进行比较,必须将输入转换为MD5字符串,然后才能轻松地与数据库中存储的值进行比较。

正如我所看到的,您遇到的问题是,在登录代码的开头有如下内容:
echo$password和几行之后,您有
echo$check\u pass\u 2,这将导致浏览器中出现一个类似于0的字符串。这是因为
$check\u pass\u 2
只计算从mysql查询返回的行数,这是0,因为没有用户名与密码相同的用户。所以你真正的问题是mysql查询,它会检查是否有用户的用户名与输入的密码相同,这很奇怪。尝试将login.php中的上一个查询更改为:

 $check_pass = mysql_query("SELECT * FROM users WHERE password = '".$password."'") 
 or die(mysql_error());
请注意,
username='“$password.”
已更改为
password='“$password.”
。 其次,你应该明白,如果你做了以下事情:

$pass = trim($_POST['pass']);
$pass = md5($_POST['pass']);
那么$pass变量将只是md5'd,而不具有修剪效果,要实现这一点,您应该执行以下操作:

$pass = trim($_POST['pass']);
$pass = md5($pass);
但你不应该删减你的密码,因为这只是奇怪和不方便,它并没有真正增加任何东西

执行此操作的行:

if($mysql_check_user 
   = mysql_query("SELECT * FROM  `users` WHERE  `username` LIKE  '$username' "))
if语句是多余的,因为您只是在赋值,所以可以删除if,让变量保持原样。即:

$mysql_check_user = mysql_query("SELECT * FROM `users` WHERE `username` LIKE '$username'");
另外,在编码时尽量保持某种风格,这样可以更容易地阅读代码。默认情况下,大多数代码编辑器都有此功能,也许您需要在每行换行符上按TAB键才能正确缩进,尽管如此,这是一个巨大的帮助。它的外观示例:

function register()
{
    if(isset($_POST['submit']))
    {
        if(!$_POST['first_name'] || 
           !$_POST['last_name'] || 
           !$_POST['username'] || 
           !$_POST['password'])
            header ("Location:user_registration.php");
        else
        {
            $firstname = trim($_POST['first_name']);
            $firstname = addslashes($_POST['first_name']);
            $lastname = trim($_POST['last_name']);
            $lastname = addslashes($_POST['last_name']);
            $username = trim($_POST['username']);
            $username = addslashes($_POST['username']);
            $password = trim($_POST['password']);
            $password = md5($_POST['password']);

            connect();

            if($mysql_check_user = mysql_query("SELECT * FROM  `users` WHERE  `username` LIKE  '$username' "))
            {
                $check_row = mysql_num_rows($mysql_check_user);
                if($check_row > 0)
                    die ("username Exist");
                else 
                {
                    $store = mysql_query
                             ("INSERT INTO `project_upload`.`users` 
                             (`id`, `fname`, `lname`, `username`, `password`) 
                             VALUES (NULL, '$firstname', '$lastname', '$username', '$password')");
                }
                if ($store)
                    echo "You have regstered succesfully. please go to <a href = 'uploads_login.php'>login page</a>";                                          
                else 
                    echo mysql_error();
            }
        }
    }
}
函数寄存器()
{
如果(isset($_POST['submit']))
{
如果(!$_POST['first_name']||
!$\u POST['last_name']||
!$_POST['username']||
!$\u POST['password'])
标题(“位置:user_registration.php”);
其他的
{
$firstname=trim($_POST['first_name']);
$firstname=addslashes($_POST['first_name']);
$lastname=trim($_POST['last_name']);
$lastname=addslashes($_POST['last_name']);
$username=trim($_POST['username']);
$username=addslashes($_POST['username']);
$password=trim($_POST['password']);
$password=md5($_POST['password']);
connect();
if($mysql\u check\u user=mysql\u query(“从`users`WHERE`username`中选择*LIKE'$username'))
{
$check\u row=mysql\u num\u rows($mysql\u check\u user);
如果($check_row>0)
死亡(“用户名存在”);
其他的
{
$store=mysql\u查询
(“插入'project_upload`.`用户`
function register()
{
    if(isset($_POST['submit']))
    {
        if(!$_POST['first_name'] || 
           !$_POST['last_name'] || 
           !$_POST['username'] || 
           !$_POST['password'])
            header ("Location:user_registration.php");
        else
        {
            $firstname = trim($_POST['first_name']);
            $firstname = addslashes($_POST['first_name']);
            $lastname = trim($_POST['last_name']);
            $lastname = addslashes($_POST['last_name']);
            $username = trim($_POST['username']);
            $username = addslashes($_POST['username']);
            $password = trim($_POST['password']);
            $password = md5($_POST['password']);

            connect();

            if($mysql_check_user = mysql_query("SELECT * FROM  `users` WHERE  `username` LIKE  '$username' "))
            {
                $check_row = mysql_num_rows($mysql_check_user);
                if($check_row > 0)
                    die ("username Exist");
                else 
                {
                    $store = mysql_query
                             ("INSERT INTO `project_upload`.`users` 
                             (`id`, `fname`, `lname`, `username`, `password`) 
                             VALUES (NULL, '$firstname', '$lastname', '$username', '$password')");
                }
                if ($store)
                    echo "You have regstered succesfully. please go to <a href = 'uploads_login.php'>login page</a>";                                          
                else 
                    echo mysql_error();
            }
        }
    }
}