国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Discuz > 正文

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

2024-09-11 09:06:02
字體:
來源:轉載
供稿:網友
  首先找到文件:uc_client/model/user.php   里面有一個函數:   [代碼]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);   這里可以看到存儲到數據庫中的用戶密碼的加密方式:   表中的密碼等于:用戶輸入的密碼經過md5加密,后面跟上一段字符串$salt之后,再md5加密一次。   $salt這段字符串哪來的呢?   看緊挨著上面的一段代碼:$salt = substr(uniqid(rand()), -6);   解開了說,rand(),是一段隨機數,位數也不確定。   uniqid(),是 基于以微秒計的當前時間,生成一個唯一的 ID。   可以再php里面運行這句話:echo uniqid(rand());   能夠得到一段數字與字母的組合的數字。   substr是一段php截取字符串的方法。   substr(uniqid(rand()), -6);可以分析為從后面往前截取6個字符。   那么discuz存儲密碼的方式就得到了:用戶輸入密碼md5加密后,在連接上6個隨機字符然后md5加密一次。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武平县| 玉屏| 垣曲县| 竹溪县| 晋宁县| 东兰县| 阿瓦提县| 中宁县| 资源县| 北票市| 东平县| 潜江市| 宝清县| 博爱县| 吴江市| 怀远县| 黑山县| 江门市| 丹棱县| 民丰县| 桑日县| 贵州省| 天全县| 南昌市| 孝感市| 红河县| 凭祥市| 孝感市| 黄平县| 静海县| 元氏县| 博爱县| 汶上县| 雅安市| 巴塘县| 宁都县| 合水县| 彭阳县| 增城市| 北票市| 昆山市|