国产探花免费观看_亚洲丰满少妇自慰呻吟_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加密一次。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荔波县| 石门县| 淳安县| 伊金霍洛旗| 龙州县| 阳城县| 清徐县| 伊宁市| 桑日县| 祁门县| 色达县| 屏边| 十堰市| 辰溪县| 云林县| 农安县| 万荣县| 徐水县| 花莲市| 红安县| 乡城县| 五河县| 和田市| 水城县| 宁河县| 龙游县| 遂宁市| 屏南县| 林周县| 阳新县| 莱西市| 红原县| 哈巴河县| 社旗县| 汶上县| 临海市| 亚东县| 吕梁市| 广丰县| 广南县| 武功县|