学习NO.1 发表于 2015-10-23 20:21:51

DISCUZ经验:程序内会员密码加密方式解读

本帖最后由 学习NO.1 于 2015-10-23 20:24 编辑

道勤主机php空间本着服务各位客户的原则,之前也分享过一篇万金油文章“网站后台管理员密码忘记了该怎么办?如何找回管理员密码?”在这篇内,我们知道当你忘记了管理员密码的时候,如何巧妙地找回管理员,简单的说,就是利用网站的统一加密方式,然后新注一个会员,知道新会员密码,然后在数据库管理工具内,把新会员密码替换为管理员密码的操作。在这里道勤小编想给大家解释一下Discuz程序的会员密码的加密方式,如果你使用上面的方法是实现不了的,那么问题来了,Discuz程序的加密方式是怎样的呢?
首先,道勤小编测试了这个功能,用新注册的会员密码字符串替换为管理员密码字符串,结果用会员密码登陆不上,这个就头疼了,如果你参考了上面的方法,估计这会儿你也头疼了。
经测试,假如密码为:123456,那么利用md5加密密码以后,显示的字符串是:e10adc3949ba59abbe56e057f20f883e,那么你注册一个Discuz会员的密码也用123456时,你在数据库表“pre_common_member”中查看到的字符却是:7839dc9437013b5c11a5d86e9b8350e9,上下一对比,完全不相同的两个字符串值,那这又是什么原因导致的呢?下面道勤小编就给大家解说一下Discuz程序的加密方式吧!
在Discuz程序表pre_common_member内有一个叫salt的字段,上面小编新注的会员salt的值是:d82a35,这是一个随机的字符串,当第一次MD5加密后,在加上这个salt值,就是一个新的字符串,再利用这个新的字符串再进行MD5加密,就是保存在数据库里面的值了。具体的格式小编也总结了一下:md5(md5(‘123456′).’d82a35′);
这个代码在注册登录的那个模块是可以查看到的,小编也没去找,这里就解释说明。
那么你会问:那怎么找回Discuz管理员密码呢?这里只有利用Tools工具箱修改,其他的方法,还待研究,如果您有新方式可以与小编交流。
页: [1]
查看完整版本: DISCUZ经验:程序内会员密码加密方式解读