首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查mybb中的用户密码

检查mybb中的用户密码
EN

Stack Overflow用户
提问于 2013-05-13 17:47:35
回答 2查看 1.2K关注 0票数 0

我使用这个脚本来检查mybb密码,但是我得到了这个错误:“NO”。我使用mybb密码加密方法,但我不知道为什么这不起作用?

代码语言:javascript
复制
<?php
error_reporting(-1);
$MySQL_Host = "localhost";
$MySQL_User = "root";
$MySQL_Pass = "";
$MySQL_DB = "mybb";

$username = 'me';
$password = 'you';

mysql_connect("$MySQL_Host", "$MySQL_User", "$MySQL_Pass") or die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("$MySQL_DB") or die(mysql_error());

$result = mysql_query("SELECT uid, password, email FROM mybb_users WHERE username='".$username."' AND password='".md5(md5($salt).md5($password))."';");
if (!$result) {
die('Invalid query: ' . mysql_error());
}

if( md5(md5($salt).md5($password)) == $result[ 0 ][ 'password' ] )
        {
        echo "yes" ;

//i need this option
        return array( 'id' => $result[ 0 ][ 'uid' ],
                          'mail' => $result[ 0 ][ 'email' ],
                          'user' => $username
                        );
         }
else
echo "no";


 ?>
EN

回答 2

Stack Overflow用户

发布于 2013-05-13 17:52:51

$result[ 0 ][ 'password' ]为空,因为您忘记获取:

代码语言:javascript
复制
$result = mysql_query("SELECT uid, password, email FROM mybb_users WHERE username='".$username."' AND password='".md5(md5($salt).md5($password))."';");
if (!$result) {
die('Invalid query: ' . mysql_error());
}

$row = mysql_fetch_assoc($result);

现在只需检查记录是否存在:

代码语言:javascript
复制
if( $row !== false )
{
    echo "yes" ;

    //i need this option
    return array( 
        'id' => $row[ 'uid' ],
        'mail' => $row[ 'email' ],
        'user' => $username
    );
} else
    echo "no";
票数 0
EN

Stack Overflow用户

发布于 2020-12-21 11:53:29

你从哪里弄到的$salt?你也需要从数据库中获取盐(每个用户都有单独的盐保存),并用该盐加密用户输入的密码,以比较数据库的密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16519125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档