• Uncle Liu's Blog
  • 追忆曾经逝去的岁月,在此存放我容易丢失的记忆!
  • 首页
  • 碎语
  • 留言板
  • 登录
  • phpwind的密码及cookie加密方式

    [PHP+MYSQL]
    post by Uncle Liu / 2010-5-27 10:32 Thursday

    phpwind是国内一款开源的论坛,在php开源论坛上,与discuz并肩争峰。最近,甚至在专业用户领域,有赶超discuz之势。但也并不是说明phpwind就全部都是优点,如密码加密方式上,就有待改进。

    本文将以我对phpwind的研究来做一些总结。

    phpwind的数据表中,密码采用单纯一次md5加密的方式。所有的密码经过一次md5之后存入数据库。这在当今来说,并不是什么安全的方式。因为假设,你的数据库被人盗取,那么用户的密码也几乎被人盗取。因为现在甚至有在线破解md5值的网站,已经积累了大量的数据,简单的位数短的密码可以直接还原。让你的隐私无处循形。

    而在本博中,我曾提到过一次discuz的加密方式,http://www.akii.org/discuz_md5_salt/,其采用salt方式,将一个随机字串的md5值与密码的md5方式再次md5之后存入数据库。当然同时也要存储这个随机字串。假设用户数据库被人盗取后,也无法通过被md5的值来获取用户密码。这在很大程度上保证了用户的隐私安全。

    phpwind的cookie加密方式,采用用户浏览器信息加用户的md5后的密码再加论坛的一个cookie加密字串(安全时随机生成,可更改)来形成一个字串,再能冠军base_64方式来加密后存入cookie。这种加密方式还是比较可取的。因为用户的浏览器信息是不能完全摸拟的。而且phpwind提供了一项设置,即如果用在企业网络中,可能就是一个大型的局域网,可以针对网域本身进行检查。以实现不能网段间的正常浏览。

    //cookie加密,采用用户信息和加密字串加密码的md5值
    function PwdCode($pwd){
    	return md5($GLOBALS['pwServer']['HTTP_USER_AGENT'].$pwd.$GLOBALS['db_hash']);
    }
     
    //base_64加解密码,用以存入和读取cookie中的加密字符串
    function StrCode($string,$action='ENCODE'){
    	$action != 'ENCODE' && $string = base64_decode($string);
    	$code = '';
    	$key  = substr(md5($GLOBALS['pwServer']['HTTP_USER_AGENT'].$GLOBALS['db_hash']),8,18);
    	$keylen = strlen($key); $strlen = strlen($string);
    	for ($i=0;$i<$strlen;$i++) {
    		$k		= $i % $keylen;
    		$code  .= $string[$i] ^ $key[$k];
    	}
    	return ($action!='DECODE' ? base64_encode($code) : $code);
    }

    而phpwind后台,因为要加入时间,默认为1800秒,所以把时间变量也加入了cookie

    $CK = array($timestamp,$_POST['admin_name'],md5(PwdCode(md5($_POST['admin_pwd'])).$timestamp),$safecv);
    	Cookie('AdminUser',StrCode(implode("\t",$CK)));
    « PHP实现html标签补全 | 本博客<<心情记事>>日志禁止转载»

    引用地址:

    评论:

    宝鸡seo
    2010-06-08 17:57
    技术博客值得关注
    好看的电影网
    2010-06-01 02:12
    我也没用了。。 怀念。。
    箴言
    2010-05-29 02:08
    没用PW好多年~~  后来一直用DZ

    发表评论:

  • 搜索

  • 腾讯微博

  • 岁月如梭

  • 分类

    • 心情记事(36) 订阅该分类
    • 经典网文(25) 订阅该分类
    • PHP+MYSQL(39) 订阅该分类
    • Javascript(21) 订阅该分类
    • 电脑网络(30) 订阅该分类
    • emlog(7) 订阅该分类
    • Linux(2) 订阅该分类
  • 日历

  • 随机日志

    • php禁止IP访问代码
    • 利用php的ob_start来生成静态页面的方法
    • Api.im
    • phostshop不能调用字体的解决办法
    • 夜半牢骚
  • 链接

    • 智能搜索
    • 合肥校园网
    • TangJun's blog
    • vb.vc个性域名
    • 点滴记忆
    • 奇遇——心情随笔
    • Sfan@Live
    • 小平博客
    • 游戏毁我半生
    • 铁观音茶叶
    • 流失 V.求锦三月
    • 铁观音
    • ═╬簡箪√嗳
    • KLLER's Blog
    • Web前端开发
    • 箴言物语
    • 零度自由
    • 刘少工作室
    • 幽默笑话
    • ------------------------------
    • PHP100中文站论坛
    • Api.im
    • emlog
  • 最新日志

    • 情侠
    • 0812
    • PHP实现html标签补全
    • phpwind的密码及cookie加密方式
    • 本博客<<心情记事>>日志禁止转载
  • 信息

    • 日志数量:160
    • 评论数量:372
    • 引用数量:1
    • 今日访问:533
    • 总访问量:325130
订阅Rss
Powered by emlog | Theme by wenlu 沪ICP备09020591号