UCenter密码算法规则和生成方法

作者:williamlong 来源:月光博客 时间:2009-09-11 12:47:00 

康盛的系列产品,包括Discuz、UCHome、Supesite都集成了同一个用户系统——UCenter,用户登录的密码也保存在UCenter中,对于其他系统集成或导出数据到UCenter系统,通常会遇到密码生成的问题,这里就讨论一下UCenter的用户密码算法规则和生成方法。

密码通常使用MD5对用户密码HASH后保存在数据库中的方法,如果黑客拿到了这个HASH数值,那么可以采用字典的方式暴力破解,如果这个字典数据库足够大,并且字典比较符合人们的设置习惯的话,那很容易就能破解常见的密码,因此UCenter采用了salt来防止这种暴力破解,salt是一随机字符串,它与口令连接在一起,再用单向函数对其运算,然后将salt值各单向函数运算的结果存入数据库中。如果可能的salt值的数目足够大的话,它实际上就消除了对常用口令采用的字典式攻击,因为黑客不可能在数据库中存储那么多salt和用户密码组合后的HASH值。

UCenter的创始人密码是保存在文件中的,打开uc下面/data/config.inc.php文件,里面的UC_FOUNDERPW保存的就是密码,而UC_FOUNDERSALT保存的是SALT数值,创始人密码的创建规则是:UC_FOUNDERPW=md5(md5(PASSWORD).UC_FOUNDERSALT),就是先将密码MD5,然后添加salt,然后再次MD5,产生的HASH数值保存在config.inc.php文件中,因此修改UC_FOUNDERPW里面的数值就可以修改UCenter的创始人密码。

UCenter的用户信息是保存在uc_members表中,在这个表中,每个用户都有一个不同的随机salt字段,表中的password字段为计算后的密码,密码计算规则是$password=md5(md5($password).$salt),也就是将用户的密码MD5后,添加salt,然后再MD5,保存在password字段中。

因此,如果进行不同系统的数据转换,可以根据这个原理,将其他系统的用户名和密码计算后,导入UCenter的uc_members表中,实现用户的迁移。例如,如果原有系统使用的是md5(password)这样的算法保存密码,那就通过程序随机生成salt,然后计算两者累加后的md5,这样就很容易计算出这个用户在UCenter中的用户密码HASH值,从而实现用户的无缝迁移。

不过,如果原有系统使用的是md5(password+salt)的方式保存的密码,那就无法实现密码的平滑迁移UCenter了,即使迁移,也只能人为将其UCenter的password增加一个salt才能使用,因此,我们在平时设计系统用户密码的时候,应该尽量采用md5(md5(password)+salt)的方式保存密码,这样才能方便的实现和UCenter的接口,并且保证了安全性,通常对于英文用户名来说,自建系统使用username来做salt是个简便的方法。

标签:Discuz,UCHome,Supesite,密码,算法
0
投稿

猜你喜欢

  • ProFTPD和WU-FTP的BANDWIDTH控制

    2010-01-02 19:03:00
  • 地方论坛推广运营经验分享

    2009-02-07 17:28:00
  • windows2003服务器给Administrator重命名的方法

    2010-05-03 14:13:00
  • 细说 AdSense 政策 – 什么是“版权材料”

    2007-11-01 12:45:00
  • 到底选谁 网站优化与竞价排名优缺点分析

    2008-12-14 07:35:00
  • Discuz! 7.1 & 7.2 远程代码执行漏洞

    2010-01-19 13:36:00
  • phpwind验证码忘了,后台进不了

    2009-02-19 21:00:00
  • 百度IM内测版的界面曝光

    2008-03-10 12:24:00
  • Linux操作系统的防火墙配置——基础篇

    2008-12-23 08:47:00
  • 秒客传奇:今天你“秒杀”了吗?

    2009-11-13 00:00:00
  • 从《赤壁》中想到目标用户的重要性

    2008-08-05 17:56:00
  • 如何利用注射技术攻击邮件服务器

    2008-08-12 11:29:00
  • wordpress仅首页显示友情链接seo优化技巧

    2011-09-30 11:49:43
  • 上帝与Google 玉帝和Baidu

    2008-05-05 13:22:00
  • DedeCMSV5.7缩略图站内上传修正

    2011-10-05 18:43:21
  • 从自助建站到自助建店

    2008-01-24 12:27:00
  • 如何用Google Adwords赚钱

    2010-05-16 13:19:00
  • 中关村在线获得信息网络传播视听节目许可证

    2010-03-08 13:49:00
  • Windows 2003 安装设置iis

    2007-09-18 14:24:00
  • 如何解决google adsense 加载慢的问题

    2007-09-23 08:31:00
  • asp之家 网站运营 m.aspxhome.com