UCenter密码忘记问题的解决办法
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-04 10:55:22 浏览: 评论:0
UCenter密码忘记怎么办?这个问题小编在几年前就碰到过,当时好像是修改了配置文件+一个指定字符的md5码就解决了,下面小编再来为各位介绍UCenter密码忘记问题的解决办法.
UCenter的密码经常出问题,以前一直都是用Discuz的tools插件进行改密码,不过今天需要迁移UCenter,在迁移未完成前新的UCenter就等不进去了,而tools又用不了,无奈,只好另找办法.
网上搜索得知,UCenter的创始人密码保存于“UCenter目录/data/config.inc.php”中,不过查到的资料显示,创始人密码是明文存储的(UCenter1.5?),但我使用的UCenter已经是加salt后md5的值,因此较难处理.
后来阅读了一下源码,找到了后台登陆的处理方法,位于UCenter目录/control/admin/user.php的onlogin方法.
这里忍不住吐槽一下Discuz的架构,虽然UCenter采用了MVC分层的设计,但是架构的设计太过简陋,代码结构非常不清晰,而Discuz的架构则更为复杂混乱.
经过阅读后得知,创始人密码是UC_FOUNDERPW常量,它在config.inc.php定义,该常量用md5(md5($password).UC_FOUNDERSALT)进行加盐加密,那么处理方法很简单了.
自己新建一个PHP文件,输入以下代码:
- <?php
- echo(md5(md5('新的密码') .'salt值')); //开源软件:phpfensi.com
- ?>
salt值可以直接使用config.inc.php中UC_FOUNDERSALT的定义,也可以重定义一个新值,但需要在config.in.php中重定义UC_FOUNDERSALT的值,运行该文件之后将输出的结果复制到config.inc.php中,重定义UC_FOUNDERPW的值即可.
现在,UCenter创始人密码已经被更新,可以使用新密码登陆了.
事实上,我用了更简单粗暴的方法,我在control/admin/user.php中的第81行:
$md5password = md5(md5($password).UC_FOUNDERSALT);
后面插了一句断点:die($md5password);
然后我尝试用新密码登陆,断点显示出了密码被加密后的值,然后将密码复制到config.inc.php,删除断点用新密码登陆,成功.
Tags: UCenter密码忘记 UCenter更改密码
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)