UCenter密碼忘記怎么辦?這個(gè)問(wèn)題小編在幾年前就碰到過(guò),當(dāng)時(shí)好像是修改了配置文件+一個(gè)指定字符的md5碼就解決了,下面小編再來(lái)為各位介紹UCenter密碼忘記問(wèn)題的解決辦法.
UCenter的密碼經(jīng)常出問(wèn)題,以前一直都是用Discuz的tools插件進(jìn)行改密碼,不過(guò)今天需要遷移UCenter,在遷移未完成前新的UCenter就等不進(jìn)去了,而tools又用不了,無(wú)奈,只好另找辦法.
網(wǎng)上搜索得知,UCenter的創(chuàng)始人密碼保存于“UCenter目錄/data/config.inc.php”中,不過(guò)查到的資料顯示,創(chuàng)始人密碼是明文存儲(chǔ)的(UCenter1.5?),但我使用的UCenter已經(jīng)是加salt后md5的值,因此較難處理.
后來(lái)閱讀了一下源碼,找到了后臺(tái)登陸的處理方法,位于UCenter目錄/control/admin/user.php的onlogin方法.
這里忍不住吐槽一下Discuz的架構(gòu),雖然UCenter采用了MVC分層的設(shè)計(jì),但是架構(gòu)的設(shè)計(jì)太過(guò)簡(jiǎn)陋,代碼結(jié)構(gòu)非常不清晰,而Discuz的架構(gòu)則更為復(fù)雜混亂.
經(jīng)過(guò)閱讀后得知,創(chuàng)始人密碼是UC_FOUNDERPW常量,它在config.inc.php定義,該常量用md5(md5($password).UC_FOUNDERSALT)進(jìn)行加鹽加密,那么處理方法很簡(jiǎn)單了.
自己新建一個(gè)PHP文件,輸入以下代碼:
- <?php
- echo(md5(md5('新的密碼') .'salt值')); //開(kāi)源軟件:Vevb.com
- ?>
salt值可以直接使用config.inc.php中UC_FOUNDERSALT的定義,也可以重定義一個(gè)新值,但需要在config.in.php中重定義UC_FOUNDERSALT的值,運(yùn)行該文件之后將輸出的結(jié)果復(fù)制到config.inc.php中,重定義UC_FOUNDERPW的值即可.
現(xiàn)在,UCenter創(chuàng)始人密碼已經(jīng)被更新,可以使用新密碼登陸了.
事實(shí)上,我用了更簡(jiǎn)單粗暴的方法,我在control/admin/user.php中的第81行:
$md5password = md5(md5($password).UC_FOUNDERSALT);
后面插了一句斷點(diǎn):die($md5password);
然后我嘗試用新密碼登陸,斷點(diǎn)顯示出了密碼被加密后的值,然后將密碼復(fù)制到config.inc.php,刪除斷點(diǎn)用新密碼登陸,成功.
新聞熱點(diǎn)
疑難解答