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是个简便的方法。


猜你喜欢
- protobuf简单介绍 protobuf是谷歌的开源序列化协议框架,结构类似于
- Godaddy主机Linux系统主机帐户的绝对路径是:/home/content/1/2/3/username/html/在路径里, &qu
- 10月12日消息,据路透社11日报道,英国媒体集团BSkyB将于下周发布数字音乐服务-Sky Songs。该集团希望能够通过此举,在音乐下载
- Google Adsense的西联汇款支付虽然已经准备了很长的时间,但是在相关配套的支持上还是有很多欠缺,所以发布者会有诸多疑问,这里有大部
- 内容代码/templets/system/channel/channel_downlinks.htm文件<script la
- 相信很多人都曾经被面试官问过这样的问题:”你对自己未来5年的职业规划是怎样的?“,每当我被问起这个问题时,我的脑海中总是会浮现出《Twist
- 编者按:图形网络游戏鼻祖《万王之王》过去十年走过的历程,是中国网游发展史上的一面镜子。通过回顾它,我们能更清晰地还原过去所遇挫折与辉煌的本源
- Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性(注1)被广泛使用,是最流行的Web服务器
- 4月19日,在“2008第三届中国互联网站长年会”上,蓝色理想创始人曾沐阳在接受专访的时候表示,大家不要轻易做个人站长,要有充分的思想准备,
- 做网站的流量,一个必不可少的步骤就是友情链接,诚然,与权重高、友链又少的网站做友情链接,可以大大有利于网站在搜索引擎中的权重,能带来大量的流
- 有Godaddy不知道该如何计算Godaddy空间的流量使用?那我们首先介绍下什么是流量?流量是允许在某个用户的网站与其余因特网之间通过的数
- 如果要允许用户在站点中上载或下载文件,就需要在 Web 服务器上设置 FTP。无论站点是位于 Intranet 还是位于 Internet
- 前言最近几天越来越对Linux很感兴趣了,想再见塔克斯的心情也是越来越浓烈,自从它给我留了110110110之后,就没了联系。到现在我也是一
- URL中出现关键词网页Title中出现关键词常规内容中出现关键词在页面的第一段中出现关键词在页面的最后一段中出现关键词Heading 标签
- 我的开发环境是python3.11以下资料来自对GPT回答的整合:部署Flask应用程序到AWS Linux服务器,你可以选择多种方式。下面
- 之前我们使用的镜像都是从 DockerHub 公共仓库拉取的,我们也学习了如何制作自己的镜像,但是通过 tar 包的方式实现镜像的备份恢复迁
- 目前大多数CPU都支持浮点运算单元FPU,FPU作为一个单独的协处理器放置在处理器核外,但是对于嵌入式处理器,浮点运算本来就少用,有些嵌入式
- 在这篇文章中,我将向你们介绍各种Exchange Server(ExchangeServer是微软公司开发的邮件服务程序)组件所使用的通信端
- 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,II
- 发现最近我的博客上的QQ币骗人的广告越来越多了,我们知道,QQ币广告基本上全都是骗人的,投放这种虚假广告,不仅仅广告单价极低,而且上当受骗的