查看文章
 
Ucenter密码$salt加密
2009年02月17日 星期二 11:18
有个支持php的服务器环境是必须的了

然后看我写的代码我们来一起研究ucenter的加密算法。

研究过那么一两次的人都应该知道uc的数据库里你设置同样的密码注册得到的md5加密都不一样。

这个问题很简单就是他的密码是拼接了一个随机的字符串$salt

那么这个$salt是怎么得到的呢!

这个$salt在uc_client\model\user.php

这个文件中能找的到

那么我先把他的代码贴出来
<code>
Line 103 :   $salt = substr(uniqid(rand()), -6);
//这个就是$salt的算法
/**
*我解释一下这个会得到什么rand --将
*产生一个随机数数的范围在没有限制的情况下是从0---32768
*uniqid()巨手册的说法《本人英语不怎么好,理解如下》
*根据当前时间返回一个独特的标识前缀,
*我想应该是类似cookies的类型是随机并且是唯一的。
*前缀最多可是114个字符串的长度。
*substr(uniqid(rand()), -6)就是把里面产生的数截取,
*截取的方法就是从后向前数6个。从第6个开始向
*后保留。给个例子
*$rest = substr("abcdef", 1); // returns "bcdef"
*$rest = substr("abcdef",   3); // returns "bcd"
*$rest = substr("abcdef",   4); // returns "abcd"
*$rest = substr("abcdef",   8); // returns "abcdef"
*这样$salt就得到了一个6个字符的随机数。
*这个随机数就是$salt的值。
**/
Line 104 :   $password = md5(md5($password).$salt);
//把从会员注册提交的注册表单那获取的$password
//进行一次md5然后和上面的$salt拼接到一起。
//拼接完在进行一次md5
Line 107 :   $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='".$this->base->onlineip."', regdate='".$this->base->time."', salt='$salt'");
//懂数据库的这个应该一看就明白就是把获取的$salt也写进数据库了。
Line 114 :   $data = $this->db->fetch_first("SELECT username, uid, password, salt FROM ".UC_DBTABLEPRE."members WHERE username='$username'");
//查询得到对应$username 的 $salt,
//然后同样的算法进行对比。
//如果为 "T" 登陆如果为 "F"   提示密码错误.
</code>
现在用我写的代码进行$salt的测试大家看看
得到的是什么。
每次刷新就会得到不同的字符.
  1. <?php
  2. $salt = substr(uniqid(rand()), -6);
  3. for($i=0; $i<5;$i++)
  4. {
  5. echo "This is \$salt<font style='color:blue;'> $salt </font>$i<br />";
  6. }
  7. echo "<br />";
  8. print "获取密码设置用户密码为   a <br /><br />";
  9. $pass = a;
  10. $password = md5(md5($pass).$salt);
  11. for($u=0;$u<5;$u++)
  12. {
  13. echo "This is \$pas<font style='color:blue;'> $password </font> $u<br/>";
  14. }
  15. ?>
复制代码
这个我想会对大家有帮助。有什么高手能把这个弄一下那么数据库的转换就出来了。

ps:DZ论坛和UCHOME里的密码都是假的,随机产生的,没有用的。
DZ论坛的随机密码是这样产生的:

$password = md5(random(10));
将10位随机数进行Md5加密

类别:discuz!||添加到搜藏 |分享到i贴吧|浏览(502)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu