English Sentence Loading...
英语句子加载中...
Joomla 用户密码的生成原理
作者: 蘑菇 日期: 2010-07-22 01:09
在网上看了许多有关Joomla用户密码的问题,有好多人对此有些疑问,也有些人说Joomla的密码不是md5加密的。这里,我想大概说一下Joomla用户密码的生成过程。
当然,Joomla对密码的加密方式有很多种,有ssha、md5、base64等等,但是因为我们很少触及这些设置,所以大多数还是在使用默认的md5加密方式。
有些人会问:为什么同样的密码每次加密后的结果都不一样呢?原因就是因为Joomla在加密的时候添加了一个随机key。由于这个key是随机的,所以每次加密后的结果也会不一样。
举例说明:
我的Joomla的明文密码是 123456,加密后的结果是
6fa7069f6c2b4a7abc376669113acab8:cW2r7QqdGQrp2Rw9sbxCxN85nSek6tlV
我们看到,加密后的字符串不是普通的md5格式,它被“:”分成了两段,这也是致使有些人怀疑它不是md5的原因。其实后面的这段是key,在每次添加新用户或修改密码时,这一串是随机生成的,而前边的密码才是md5加密后的密码,加密方法为:
md5(明文密码.key)
如上面的密码应该为
6fa7069f6c2b4a7abc376669113acab8 == md5('123456cW2r7QqdGQrp2Rw9sbxCxN85nSek6tlV')
在验证用户密码时也通过这个key做一下md5验证就可以了。
生成这个key和加密密码的函数分别为 getSalt() 和 getCryptedPassword()
它们在 libraries/joomla/user/helper.php 文件中被定义,在 libraries/joomla/user/user.php 的bind()方法中被调用。
当然,Joomla对密码的加密方式有很多种,有ssha、md5、base64等等,但是因为我们很少触及这些设置,所以大多数还是在使用默认的md5加密方式。
有些人会问:为什么同样的密码每次加密后的结果都不一样呢?原因就是因为Joomla在加密的时候添加了一个随机key。由于这个key是随机的,所以每次加密后的结果也会不一样。
举例说明:
我的Joomla的明文密码是 123456,加密后的结果是
6fa7069f6c2b4a7abc376669113acab8:cW2r7QqdGQrp2Rw9sbxCxN85nSek6tlV
我们看到,加密后的字符串不是普通的md5格式,它被“:”分成了两段,这也是致使有些人怀疑它不是md5的原因。其实后面的这段是key,在每次添加新用户或修改密码时,这一串是随机生成的,而前边的密码才是md5加密后的密码,加密方法为:
md5(明文密码.key)
如上面的密码应该为
6fa7069f6c2b4a7abc376669113acab8 == md5('123456cW2r7QqdGQrp2Rw9sbxCxN85nSek6tlV')
在验证用户密码时也通过这个key做一下md5验证就可以了。
生成这个key和加密密码的函数分别为 getSalt() 和 getCryptedPassword()
它们在 libraries/joomla/user/helper.php 文件中被定义,在 libraries/joomla/user/user.php 的bind()方法中被调用。
发表评论
订阅
上一篇
返回
下一篇
标签:


从Joomla浅谈工厂方法(Factory - Method)模式 (2010-07-12 20:59)
php 分页类 (2010-06-01 23:22)
php 生成 xml 添加 BOM (2010-05-27 21:20)
php 生成缩略图 (2010-05-06 11:56)
数据结构 之 直接插入排序 (2010-04-21 02:01)
数据结构 之 冒泡法排序 (2010-04-21 01:44)
数据结构 之 简单选择排序 (2010-04-21 01:38)
php 利用 fsockopen 模拟 post 提交 (2010-04-21 00:31)
Joomla 调用module的方法 (2010-04-18 22:46)