LECMS后台密码忘了怎么找回
照着这篇做完,你能在不重装、不丢数据的前提下重新登进 LECMS 后台。
第一步:先确认后台入口和版本,别急着改数据库
这一步的目的是搞清楚你的 LECMS 到底是哪个版本、后台从哪个地址进,否则后面改表容易改错地方。
先用浏览器试这两个地址:
http://你的域名/admin.phphttp://你的域名/index.php/admin
能打开登录页就说明程序正常,只是密码问题。然后通过 FTP 或宝塔面板的「文件」功能,打开网站根目录,找 config 文件夹里的 config.php(部分版本是 database.php),里面能看到版本号和数据库信息。同时记下根目录下 admin.php 是否存在——这是后台入口文件,后面如果怀疑入口被改名,也靠它判断。
注意:动手前先导出一次数据库备份。宝塔面板「数据库」→ 找到对应库 → 「备份」,或 phpMyAdmin 里「导出」。改错了还能还原。
第二步:拿到数据库账号,连进数据库
这一步要拿到数据库连接权限,结果是你能在 phpMyAdmin 里看到 LECMS 的所有数据表。
打开第一步里那个 config.php,找到类似下面几行:
'host' => '127.0.0.1',
'user' => 'lcms_user',
'password' => 'xxxxxx',
'dbname' => 'lcms',
'prefix' => 'le_',
prefix 就是表前缀,务必记下来。然后两种方式进库:
- 虚拟主机/宝塔面板:面板里一般有「phpMyAdmin」入口,用上面的 user 和 password 登录;
- 自己搭的环境:命令行执行
mysql -u lcms_user -p,输入密码后use lcms;。
第三步:定位管理员表,看清密码字段长什么样
这一步要找到存管理员账号的那张表,并判断密码是怎么加密的,决定了后面用哪种改法。
在 phpMyAdmin 左侧找到 你的前缀 + user 表(常见如 le_user、lc_user),点「浏览」,找到你的管理员那行记录,重点看三个字段:
username:管理员账号名;password:一长串字符,数一下是不是 32 位;salt或encrypt:如果存在,说明密码是「加盐」的。
然后确认加密规则:用 FTP 打开 你的前缀 + user 对应的模型文件,一般在 app/ 或 model/ 目录下的 user.func.php,搜索 md5。常见写法是:
md5(md5($password) . $salt)
如果你的表里没有 salt 字段、password 又是 32 位,那就是单层 md5($password)。
第四步:生成新密码并写回数据库
这一步是把算好的密码哈希更新进表里,做完就能用新密码登录。
情况 A:单层 md5(无 salt 字段)。在 phpMyAdmin 顶部点「SQL」,执行:
UPDATE le_user SET password = MD5('Admin@123456') WHERE username = 'admin';
把 le_user、admin、密码换成你自己的。
情况 B:有 salt 字段。在本地或服务器上建一个临时 PHP 文件 pw.php,内容:
<?php
echo md5(md5('Admin@123456') . '把数据库里salt字段的值原样粘这里');
访问 http://你的域名/pw.php,把输出的 32 位字符串复制出来,再用 SQL 更新:
UPDATE le_user SET password = '刚复制出来的一串' WHERE username = 'admin';
注意:
salt字段的值必须完全一致,多一个空格就登不上。改完立刻删掉pw.php,否则等于把改密码的通道公开挂在网上。
第五步:清缓存再登录,最后收尾
这一步解决"密码改对了还是登不上"的问题。
LECMS 会缓存用户信息,改库后需要清缓存:用 FTP 删除根目录下 runtime(或 cache、data/cache)文件夹里的内容,只删里面的文件,不要删文件夹本身。然后访问后台地址,用新密码登录。
如果提示验证码错误或账号被锁,清空浏览器 Cookie,或到后台所在的登录限制表(如 le_login_log)里删掉失败记录。
登录成功后做三件事:后台「用户管理」里把密码改成你自己好记的;确认 pw.php 已删除;再导出一次数据库备份。
注意:如果连管理员账号名也忘了,第三步的
SELECT * FROM le_user;结果里就能看到,一般 id 为 1 的那行就是超级管理员。
小结
- 后台入口通常是
/admin.php,数据库信息在config/config.php,表前缀也在这里。 - 管理员账号存在「前缀 + user」表,密码字段是 md5 值,有 salt 字段就要双层加密。
- 单层用
MD5('新密码'),双层用md5(md5('新密码').'salt值')先算再更新。 - 改完清
runtime/cache缓存,清浏览器 Cookie。 - 全程先备份数据库,临时 PHP 文件用完立即删除。
原文链接:https://www.gj0.com/thread-286.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。