Board logo

标题: [已回复]除了我,还有谁知道我的密码? [打印本页]

作者: qq544935474    时间: 2011-7-16 07:45     标题: [已回复]除了我,还有谁知道我的密码?

比如本站admin他知道吗?
作者: broly    时间: 2011-7-16 09:49

不知道。discuz论坛注册用户时,你的密码会先以md5加密再存入数据库。再说本论坛不会窥探用户隐私的,这你大可放心
作者: Demon    时间: 2011-7-16 14:17

不知道。discuz论坛注册用户时,你的密码会先以md5加密再存入数据库。再说本论坛不会窥探用户隐私的,这你大可放心
broly 发表于 2011-7-16 09:49

你有看过discuz源码么?
作者: Taurus    时间: 2011-7-20 14:25

本帖最后由 Taurus 于 2011-7-20 14:27 编辑
你有看过discuz源码么?
Demon 发表于 2011-7-16 14:17

以我所知這是插件問題
DZ舊版有插件專門做這個的,包括看用戶PM訊息;
新版本DZ我就不知道了

PS:我指的舊版都DZ4.0了
作者: broly    时间: 2011-7-20 19:32

3# Demon

我确实没有看过discuz加密的源码,但是以前有听说过discuz是用MD5加密的。
好了,现在你知道答案了,你想表达什么?
我今天去看了下discuz7.2源码:
bbs/register.php 第252行:
  1. $password = md5(random(10));
  2. $db->query("INSERT INTO {$tablepre}members (uid, username, password, secques, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, showemail, timeoffset, pmsound, invisible, newsletter)
  3.   VALUES ('$uid', '$username', '$password', '$secques', '0', '$groupinfo[groupid]', '$onlineip', '$timestamp', '$timestamp', '$timestamp', '0', $initcredits, '$email', '0', '9999', '1', '0', '1')");
复制代码

其中 random() 函数在
bbs/include/global.func.php 第909行
  1. function random($length, $numeric = 0) {
  2. PHP_VERSION < '4.2.0' ? mt_srand((double)microtime() * 1000000) : mt_srand();
  3. $seed = base_convert(md5(print_r($_SERVER, 1).microtime()), 16, $numeric ? 10 : 35);
  4. $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
  5. $hash = '';
  6. $max = strlen($seed) - 1;
  7. for($i = 0; $i < $length; $i++) {
  8.   $hash .= $seed[mt_rand(0, $max)];
  9. }
  10. return $hash;
  11. }
复制代码

这里大概的意思就是把 密码和一个随机数加起来的字符串 进行第一重MD5的16位加密,然后转换为十进制,然后加字符串zZ和大写第一次加密后的字符串,然后打乱这些字符串的顺序,最后再第二重 16位MD5加密。
这样想反查出明文密码就很难了。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2