• 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标签补全 | 本博客<<心情记事>>日志禁止转载»

    引用地址:

    有以下朋友发表了自己的看法:

    Gravatar abercrombie fitch
    2011-12-13 16:09
    很好啊
    Gravatar Hollister Köln
    2011-12-13 16:08
    Hollister Köln Weiden,hollister online shop, hollister deutschland
    Gravatar Coach Factory Outlet
    2011-12-12 15:17
    感谢分享哈。。
    Gravatar Buy Jordan Retro
    2011-11-26 14:12
    看起来感觉好负责哦,
    Gravatar cheap ugg boots
    2011-10-07 10:24
    哎哎,老了
    Gravatar Cheap UGGS
    2011-09-24 08:39
    先收藏了再说。。。
    Gravatar Cheap UGGS
    2011-09-24 08:36
    很不错。。。谢谢分享
    Gravatar 八一肝病中心
    2011-05-03 17:01
    谢谢分享
    Gravatar Uncle Liu
    2010-12-14 11:43
    @discounted uggs:我也不懂
    Gravatar discounted uggs
    2010-12-14 10:41
    看起来感觉好负责哦,不太懂啊|!
    Gravatar ugg boots mini
    2010-12-04 14:47
    最近也在了解这方面的内容,谢谢分享,挺有帮助的
    Gravatar 宝鸡seo
    2010-06-08 17:57
    技术博客值得关注
    Gravatar 好看的电影网
    2010-06-01 02:12
    我也没用了。。 怀念。。
    Gravatar 箴言
    2010-05-29 02:08
    没用PW好多年~~  后来一直用DZ

    发表评论:

  • 搜索

  • 岁月如梭

  • 分类

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

  • 随机日志

    • 文本框随文本的宽度而增长的特效代码
    • 中小企业网站形同虚设,谁来买账?技术员们挺起腰杆!
    • 伪静态页面生成教程mod_rewrite
    • 宅居动物---1688.com广告
    • js校验文本框中只能输入0~9的数字
  • 链接

    • TangJun's blog
    • vb.vc个性域名
    • 点滴记忆
    • 奇遇——心情随笔
    • Sfan@Live
    • 乐小北
    • 游戏毁我半生
    • 铁观音茶叶
    • ═╬簡箪√嗳
    • KLLER's Blog
    • Web前端开发
    • 零度自由
    • PHP100中文站论坛
    • Api.im
    • emlog
  • 最新日志

    • 茶汤
    • 操蛋的一年终于过去了
    • 域名城第16届域名大赛 - “非6勿扰”双拼.com域名大赛
    • 永远的兄弟
    • 夜半孤寂茶当酒,一壶独饮到天明
  • soft

    • 分类信息
订阅Rss
Powered by emlog | Loekman 主题 | 沪ICP备09020591号