在mybb数据库中加密密码的方法

问题描述:

有人可以给我电话mybb使用什么方法来加密数据库中的密码? ,因为我有这个代码每次我使用用户和密码(正确的用户和通行证)的问题,我有错误:“不正确的用户和密码”在mybb数据库中加密密码的方法

我给你3我的代码,我需要帮助我觉得我有类问题登录):

谢谢你的帮助。

class DB 
{ 
    var $connection; 
    var $started; 

    function start() 
    { 
     global $MySQL_Host, $MySQL_User, $MySQL_Pass, $MySQL_DB; 

     $this->connection = mysql_connect($MySQL_Host, $MySQL_User,  $MySQL_Pass); 
     mysql_select_db($MySQL_DB, $this->connection); 
    } 

    function query($query) 
    { 
     $result = mysql_query($query, $this->connection); 

     if($result) 
     { 
      return mysql_fetch_full_result_array($result); 
     } 
     else 
     { 
      return $result; 
     } 
    } 

    function end() 
    { 
     mysql_close($this->connection); 
    } 

    function isStarted() 
    { 
     return $started; 
    } 
} 

function mysql_fetch_full_result_array($result) 
{ 
    $table_result = array(); 
    $r = 0; 

    if($result === true) 
    { 
     return $result; 
    } 

    if(mysql_num_rows($result) == 0) 
    { 
     return $result; 
    } 

    while($row = mysql_fetch_assoc($result)) 
    { 
     $arr_row = array(); 
     $c = 0; 

     while ($c < mysql_num_fields($result)) 
     {  
      $col = mysql_fetch_field($result, $c); 
      $arr_row[ $col -> name ] = $row[ $col -> name ];   
      $c++; 
     } 

     $table_result[ $r ] = $arr_row; 
     $r++; 
    } 

    return $table_result; 
} 


class Login 
{ 

    function CheckLogin($username, $password) 
    { 
     $db = new DB(); 
     $db->start(); 

     $query = "SELECT uid, password, email FROM mybb_users WHERE username='".$username."' AND password='".md5(md5($salt).md5($password))."';"; 

     $result = $db->query($query); 

     $db->end(); 

     if($result == false) 
      return false; 
//    fwrite($fh, $result); 
//    fclose($fh); 


     if(md5(md5($salt).md5($password)) == $result[ 0 ][ 'password' ]) 
     { 
      return array('uid' => $result[ 0 ][ 'uid' ], 
          'mail' => $result[ 0 ][ 'email' ], 
          'user' => $username 
         ); 
     } 
    } 
} 
+0

'MD5(MD5($盐).md5($密码))'任何地方声明。你能告诉我们代码在哪里哈希值?另外,你不应该使用'MD5'。相反,看看'SHA1'。 – christopher 2013-05-09 06:59:33

+0

@Chris SHA1对于密码散列的破坏程度只比MD5小得多。使用一种*昂贵的哈希像河豚!使用https://github.com/ircmaxell/password_compat/ – deceze 2013-05-09 07:05:33

查询使用$salt,但我没有看到它在代码

$query = "SELECT uid, password, email FROM mybb_users WHERE username='".$username."' AND password='".md5(md5($salt).md5($password))."';"; 
+0

$查询=“选择用户名,密码,电子邮件,盐从mybb_users WHERE用户名='”。$ username。“'AND password ='”。md5(md5($盐).md5($密码))。 “”;“;也是同样的错误! – user1973003 2013-05-09 07:08:39

+0

请求我需要更多帮助。谢谢 – user1973003 2013-05-09 07:15:06

+0

:请人帮助我:| :| – user1973003 2013-05-09 11:54:41