Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

supesite里看到的 UC DISCUZ等密码算法并增加一个会员批量导入程序;

[复制链接]
benba 发表于 2009-12-17 21:11:07 | 显示全部楼层 |阅读模式
密码每登陆一次 就变一次 但我们输入的都是同一个密码 这就是康盛公司高明之处  康盛不光用了两次MD5加密 还加入了一个 $salt算法进去;

在这里来分析DZ的算法及怎么批量导入会员(安装了SUPESITE后在根目录新建一个PHP才可以用哦):
这里的user.txt 每行都存一个用户名;不能重复!
  1. <?php

  2. $file_name="user.txt";
  3. $fp=fopen($file_name,'r');
  4. while(!feof($fp))
  5. {
  6.   $buffer=fgets($fp,4096);
  7.   $arr[]=$buffer;
  8. }
  9. fclose($fp);
  10. $arr=array_unique($arr);
  11. include_once('common.php');

  12. if(!@include_once S_ROOT.'./uc_client/client.php') {
  13.                         showmessage('system_uc_error');
  14.                 }
  15. $password='123456';
  16. $email='3589225@qq.com';
  17. $a= 13699;
  18.         $time=time();
  19.        
  20.         function add_user($username, $password, $email) {
  21.                 global $_SGLOBAL;
  22.                 $salt = substr(uniqid(rand()), -6);
  23.                 $password = md5(md5($password).$salt);
  24.                
  25.                 $querya = $_SGLOBAL['db']->query("INSERT INTO `nihaocq`.`user_members` (
  26. `uid` ,
  27. `username` ,
  28. `password` ,
  29. `email` ,
  30. `myid` ,
  31. `myidkey` ,
  32. `regip` ,
  33. `regdate` ,
  34. `lastloginip` ,
  35. `lastlogintime` ,
  36. `salt` ,
  37. `secques`
  38. )
  39. VALUES (
  40. NULL , '$username', '$password', '3589225@qq.com', '', '', '', '$time', '0', '0', '$salt', ''
  41. )");

  42.                 $news = $_SGLOBAL['db']->fetch_array($querya);
  43.                 return $username;
  44.         }



  45. for($i=0;$i < $a;$i++){
  46. $username=$arr[$i];
  47. $newuid=add_user($username, $password, $email);
  48. echo $newuid.'导入'.$username.'成功<br>';
  49. }

  50. ?>
复制代码
下面两句是密码算法的关健:

                $salt = substr(uniqid(rand()), -6);  得到一个$salt 值;
                $password = md5(md5($password).$salt); 把得到的值和本身用户输入的密码进行2次MD5加密;

好了经过这样的加密 就算 人家进去了我们的数据库 拿到加密后的 MD5 也是破解不出来的 就算得到明文了 也还是加密码

评分

1

查看全部评分

 楼主| benba 发表于 2009-12-17 21:18:17 | 显示全部楼层
$salt = substr(uniqid(rand()), -6);  分析:

rand() 产生一个随机数如5,60,888,542这样随机生成一个数字;

uniqid(rand()) 通过rand生成的随机机然后再生成一个唯一的 ID。

substr(uniqid(rand()), -6);  然后用substr只取uniqid生成的唯一ID 的最后6位数 ;就变成了 $salt

这算法 太.......  自己慢慢去想通吧!!!
回复

使用道具 举报

海梦缘 发表于 2009-12-17 21:21:38 | 显示全部楼层
AD
回复

使用道具 举报

 楼主| benba 发表于 2009-12-17 21:25:04 | 显示全部楼层
AD
海梦缘 发表于 2009-12-17 21:21



    AD在哪儿????
回复

使用道具 举报

eibody 发表于 2009-12-17 21:45:26 | 显示全部楼层
这个嘛~~~不懂
回复

使用道具 举报

tnjjbb 发表于 2009-12-19 00:02:30 | 显示全部楼层
好厉害啊,佩服佩服
回复

使用道具 举报

宸阳言 发表于 2009-12-30 21:14:58 | 显示全部楼层
顶一个!~~~~
回复

使用道具 举报

lidq.jingwu 发表于 2009-12-31 18:54:40 | 显示全部楼层
需要二次开发或学习supesite的朋友可以来看一下,很不错的一篇文章。
回复

使用道具 举报

xhnet 发表于 2010-1-3 15:36:59 | 显示全部楼层


http://www.qingbomen.cn 强烈支持一下
回复

使用道具 举报

shenkuantipang 发表于 2010-1-4 13:23:56 | 显示全部楼层
顶. 支持 .  好文章.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-24 03:48 , Processed in 0.034530 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表