花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網,按 + 收藏我們
登錄 注冊 退出 找回密碼

discuz用戶密碼加密方式解析及忘記密碼的解決辦法

時間: 2019-05-23 08:07 閱讀: 作者:素材無憂網

  首先找到文件:uc_client/model/user.php   里面有一個函數(shù):   [代碼]php代碼: function add_user($username, $password, $email, $uid = 0, $questionid = '', $answer = '', $regip = '') {          $regip = empty($regip) ? $this->base->onlineip : $regip;          $salt = substr(uniqid(rand()), -6);          $password = md5(md5($password).$salt);          $sqladd = $uid ? "uid='".intval($uid)."'," : '';          $sqladd .= $questionid > 0 ? "secques='".$this->quescrypt($questionid, $answer)."'," : "secques='',";          $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='$regip', regdate='".$this->base->time."', salt='$salt'");          $uid = $this->db->insert_id();          $this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");          return $uid;     }     這個是添加用戶到ucenter中的方法,注意里面這句話:   $password = md5(md5($password).$salt);   這里可以看到存儲到數(shù)據庫中的用戶密碼的加密方式:   表中的密碼等于:用戶輸入的密碼經過md5加密,后面跟上一段字符串$salt之后,再md5加密一次。   $salt這段字符串哪來的呢?   看緊挨著上面的一段代碼:$salt = substr(uniqid(rand()), -6);   解開了說,rand(),是一段隨機數(shù),位數(shù)也不確定。   uniqid(),是 基于以微秒計的當前時間,生成一個唯一的 ID。   可以再php里面運行這句話:echo uniqid(rand());   能夠得到一段數(shù)字與字母的組合的數(shù)字。   substr是一段php截取字符串的方法。   substr(uniqid(rand()), -6);可以分析為從后面往前截取6個字符。   那么discuz存儲密碼的方式就得到了:用戶輸入密碼md5加密后,在連接上6個隨機字符然后md5加密一次。

版權聲明: 本站資源均來自互聯(lián)網或會員發(fā)布,如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內刪除!謝謝!

轉載請注明: discuz用戶密碼加密方式解析及忘記密碼的解決辦法

標簽:  
相關文章
模板推薦